如何在iOS应用程序中的所有ViewController中重用相同的UIView
嗨,我是iOS开发新手,我正在开发一个iOS应用程序,我希望在整个应用程序中使用相同的页脚。现在我在每个控制器中创建不同的UIView,但这不是最佳方式。如何创建单个uiview并在应用程序中重用它。我正在使用故事板。在我的页脚中,我有四个按钮将可重用视图创建为如何在iOS应用程序中的所有ViewController中重用相同的UIView,ios,objective-c,uiview,Ios,Objective C,Uiview,嗨,我是iOS开发新手,我正在开发一个iOS应用程序,我希望在整个应用程序中使用相同的页脚。现在我在每个控制器中创建不同的UIView,但这不是最佳方式。如何创建单个uiview并在应用程序中重用它。我正在使用故事板。在我的页脚中,我有四个按钮将可重用视图创建为XIB,并在需要的地方以编程方式加载它。显示如何处理XIBs 这对您的页脚应该很好 对于更复杂的可重用视图,拥有自己的UIViewConroller,这很有意义: 在情节提要中创建viewController 将其实例化如下: let
XIB
,并在需要的地方以编程方式加载它。显示如何处理XIB
s
这对您的页脚应该很好
对于更复杂的可重用视图,拥有自己的UIViewConroller
,这很有意义:
- 在情节提要中创建viewController
- 将其实例化如下:
let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil) let controller = storyboard.instantiateViewController(withIdentifier: "someViewController")
func add(childViewController controller: UIViewController, embedViewIn containerView: UIView) { controller.willMove(toParentViewController: self) addChildViewController(controller) containerView.addSubview(controller.view) // addCustomConstraints }
func remove(childViewController controller: UIViewController) { controller.willMove(toParentViewController: nil) controller.view.removeFromSuperview() controller.removeFromParentViewController() }
- 将其添加为子viewController,如下所示:
let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil) let controller = storyboard.instantiateViewController(withIdentifier: "someViewController")
func add(childViewController controller: UIViewController, embedViewIn containerView: UIView) { controller.willMove(toParentViewController: self) addChildViewController(controller) containerView.addSubview(controller.view) // addCustomConstraints }
func remove(childViewController controller: UIViewController) { controller.willMove(toParentViewController: nil) controller.view.removeFromSuperview() controller.removeFromParentViewController() }
以后可以按如下方式删除子viewController:
let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "someViewController")
func add(childViewController controller: UIViewController, embedViewIn containerView: UIView) {
controller.willMove(toParentViewController: self)
addChildViewController(controller)
containerView.addSubview(controller.view)
// addCustomConstraints
}
func remove(childViewController controller: UIViewController) {
controller.willMove(toParentViewController: nil)
controller.view.removeFromSuperview()
controller.removeFromParentViewController()
}
您必须使用自定义tabBar,看看这个链接,我已经实现了它,它很容易理解。创建一个uiview类,并在代码中将您的页脚添加到其中,将其子类化并用于所有其他视图。为什么不使用
tabBar
?使用TabBar的简单且更好的方法。如果我们使用TabBar,所有视图的页脚都会有一个按钮。我错过了obj-c标记。很抱歉除了语法之外,它的工作方式也是一样的。如何使用故事板第一种方法不能使用故事板。但XIB就像没有VieeControl的视图的故事板。试试看。