如何将子视图添加到当前导航控制器?
How to add subview to current navigation controller?
我有一个项目设置,它有一个 uiscrollview,它附加了 2 个具有 table 视图的视图控制器,以允许水平滚动。这嵌入在导航控制器中。
这样想。 VC1 是带按钮的摘要,可将用户带到 VC2。 VC2 是项目列表,但水平滚动视图中包含 2 个列表。 VC2 的列表是 VC2.1 和 VC2.2。这些是嵌入了 table 视图的视图控制器。 VC3是详细视图,点击VC2.1或VC2.2的单元格后可以进入。 VC1 和 VC2 都有导航控制器。 VC2.1、VC2.2 和 VC3 没有。
我正在尝试设置 table 视图单元格以推送到详细信息视图。我能够使用以下方式以模态方式执行此操作:
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let vc: MyDetailsViewController = storyboard.instantiateViewControllerWithIdentifier("myDetailsVC") as! MyDetailsViewController
let navigationController = UINavigationController(rootViewController: vc)
self.presentViewController(navigationController, animated: true, completion: nil)
然而,有几件事并没有像我希望的那样工作。
- 视图显示有导航栏但没有后退按钮
- 视图以模态方式呈现
有没有办法让这个详细信息视图成为主导航控制器的一部分,并像所有其他导航视图一样从右向左滑动显示?
通过维护 ViewController
容器,您可以简单地访问 parentViewController
的 NavigationController
。
在使用 addSubview:
添加 ViewController
的 view
时,使用 addChildViewController:
添加 ViewController
到 ParentViewController
self.addChildViewController(VC2)
VC2.view.frame = scrollView.bounds
self.view .addSubview(VC2.view)
我有一个项目设置,它有一个 uiscrollview,它附加了 2 个具有 table 视图的视图控制器,以允许水平滚动。这嵌入在导航控制器中。
这样想。 VC1 是带按钮的摘要,可将用户带到 VC2。 VC2 是项目列表,但水平滚动视图中包含 2 个列表。 VC2 的列表是 VC2.1 和 VC2.2。这些是嵌入了 table 视图的视图控制器。 VC3是详细视图,点击VC2.1或VC2.2的单元格后可以进入。 VC1 和 VC2 都有导航控制器。 VC2.1、VC2.2 和 VC3 没有。
我正在尝试设置 table 视图单元格以推送到详细信息视图。我能够使用以下方式以模态方式执行此操作:
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let vc: MyDetailsViewController = storyboard.instantiateViewControllerWithIdentifier("myDetailsVC") as! MyDetailsViewController
let navigationController = UINavigationController(rootViewController: vc)
self.presentViewController(navigationController, animated: true, completion: nil)
然而,有几件事并没有像我希望的那样工作。
- 视图显示有导航栏但没有后退按钮
- 视图以模态方式呈现
有没有办法让这个详细信息视图成为主导航控制器的一部分,并像所有其他导航视图一样从右向左滑动显示?
通过维护 ViewController
容器,您可以简单地访问 parentViewController
的 NavigationController
。
在使用 addSubview:
添加 ViewController
的 view
时,使用 addChildViewController:
ViewController
到 ParentViewController
self.addChildViewController(VC2)
VC2.view.frame = scrollView.bounds
self.view .addSubview(VC2.view)