【问题标题】:How to add subview to current navigation controller?如何将子视图添加到当前导航控制器?
【发布时间】:2015-11-17 10:33:48
【问题描述】:

我有一个项目设置,它有一个 uiscrollview,它附加了 2 个视图控制器,这些控制器具有表视图以允许水平滚动。这是嵌入在导航控制器中的。

这样想。 VC1 是带有将用户带到 VC2 的按钮的摘要。 VC2 是项目列表,但水平滚动视图中包含 2 个列表。 VC2 的列表是 VC2.1 和 VC2.2。这些是嵌入了表视图的视图控制器。 VC3 是详细视图,点击 VC2.1 或 VC2.2 的单元格后可以访问。 VC1 和 VC2 都有导航控制器。 VC2.1、VC2.2 和 VC3 没有。

我正在尝试将表格视图单元格设置为推送到详细信息视图。我能够以模态方式使用:

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)

然而,有些事情并没有像我希望的那样工作。

  1. 视图显示有导航栏但没有返回按钮
  2. 视图以模态方式呈现

有没有办法让这个细节视图成为主导航控制器的一部分,并让它像所有其他导航视图一样从右向左滑入?

【问题讨论】:

    标签: ios swift cocoa-touch uinavigationcontroller uistoryboard


    【解决方案1】:

    通过维护ViewController 遏制,您可以轻松访问parentViewControllerNavigationController

    在使用addSubview: 添加ViewControllerview 时,使用addChildViewController:ViewController 添加到ParentViewController

    self.addChildViewController(VC2)
    
    VC2.view.frame = scrollView.bounds
    self.view .addSubview(VC2.view)
    

    【讨论】:

      猜你喜欢
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多