我使用swift3 / xcode 8编写应用程序。我的应用程序有一个名为MenuViewController的中央视图控制器,负责侧边菜单。 在这个内部,我将其他视图作为子视图加载,所以这样我可以在所有其他视图中使用侧边菜单。
但我现在有疑问:在特定的视图控制器中,我有一个表视图,它有一个方法来执行选择项目的操作。此动作调用其他 查看并传递参数。
那么,如何使用此参数在BaseViewController中加载此视图?有可能吗?
如果不清楚,请告诉我。
谢谢!
更新1:
我正在使用我发现有趣的解决方案: Cocoacasts
基本上我在MenuViewController上有这个代码:
声明要在MenuViewController中加载的视图:
lazy var filamentoViewController: FilamentoViewController = {
let storyboard = storyboard.instantiateViewController(withIdentifier: "FilamentoViewController") as! FilamentoViewController
self.addViewControllerAsChildViewController(childViewController: viewController)
return viewController
}()
在MenuViewController中添加viewcontroller作为子节点:
private fun addViewControllerAsChildViewController(childViewController: UIViewController)
{
addChildViewController(childViewController)
view.addSubView(childViewController.view)
childViewController.view.frame = view.bounds
childViewController.view.autoResizingMask = [.flexibleWidth, .flexibleHeight]
childViewController.didMove(toParentViewController: self)
}
FilamentoViewController中调用其他viewcontroller的代码:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: IndexPath)
{
let editFilamentoViewController:EditFilamentoViewController = EditFilamentoViewController()
editFilamentoViewController.cod = indexPath.row
self.presentViewController(editFilamentoViewController, animated: true, completion: nil)
}
代码
self.presentViewController(editFilamentoViewController, animated: true, completion: nil)
是我想加载到MenuViewController中的那个。
更新2:
MenuViewController是一个CentreViewController。我在中心加载其他视图,菜单从左边开始。
答案 0 :(得分:1)
有一个内置的控制器满足您的需求(即UISplitViewController),你有没有考虑过这个?
还有幻灯片菜单库。