我有一个基本视图控制器,就像我的"蓝图"创建更多视图控制器以显示用户(注册/登录/重置密码/等)。该基本视图控制器具有容器视图。
我有很多小视图控制器,我想要基本视图控制器的容器视图,如下所示:
如何为容器视图使用不同的视图控制器?如何在容器视图中指定可以使用的迷你视图控制器?我可以使用故事板ID / segues,但我不知道如何。有什么提示吗?
答案 0 :(得分:8)
您好cesare可以通过在baseClass中使用containerView来解决问题,您可以在其中使用三个不同的viewControllers。
请找到这些简单的教程,您可以在其中以编程方式添加或删除子viewController
private func add(asChildViewController viewController: UIViewController) {
// Add Child View Controller
addChildViewController(viewController)
// Add Child View as Subview
view.addSubview(viewController.view)
// Configure Child View
viewController.view.frame = view.bounds
viewController.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
// Notify Child View Controller
viewController.didMove(toParentViewController: self)
}
private func remove(asChildViewController viewController: UIViewController) {
// Notify Child View Controller
viewController.willMove(toParentViewController: nil)
// Remove Child View From Superview
viewController.view.removeFromSuperview()
// Notify Child View Controller
viewController.removeFromParentViewController()
}
For reference you can find this github project
https://github.com/bartjacobs/ManagingViewControllersWithContainerViewControllers/blob/master/ViewControllerContainment/MasterViewController.swift
答案 1 :(得分:2)
您只能将一个从容器视图嵌入segue到另一个视图控制器。因此,最好的方法是让一个视图控制器显示动态内容。
但是,如果您希望在故事板上安装静态视图控制器,则可以执行的操作是将标签栏控制器嵌入到容器视图中。您已将所有视图控制器作为其中一个选项卡。之后,您需要做的就是首先隐藏标签栏,然后决定使用tabBarController.selectedIndex = yourIndex
显示哪个标签