如何以编程方式快速实例化具有嵌入式导航控制器的视图控制器?

Posted

技术标签:

【中文标题】如何以编程方式快速实例化具有嵌入式导航控制器的视图控制器?【英文标题】:How to instantiate a viewcontroller with an embedded navigation controller programmatically swift? 【发布时间】:2016-05-26 20:23:01 【问题描述】:

我正在尝试从 AppDelegate 实例化一个嵌入了导航控制器的视图控制器。这是我的代码的样子:

  var window: UIWindow?

  func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 
      let dm = DefaultsManager.sharedManager
    if  dm.rememberMe == true 
      let storyboard =  UIStoryboard(name: "Main", bundle: nil)
      let vc = storyboard.instantiateViewControllerWithIdentifier("VolunteerVC")

      self.window!.rootViewController = vc
      self.window?.makeKeyAndVisible()
    

右视图控制器已实例化,但嵌入其中的导航控制器现在丢失了。知道如何在仍然连接的导航控制器的情况下实例化它吗?

【问题讨论】:

如果没有更多信息,很难理解发生了什么。就像你故事板的样子等等。我很确定你也需要创建一个窗口?设置 rootViewController 之前的 self.window = UIWindow(frame:UIScreen.mainScreen().bounds) 之类的东西? 【参考方案1】:

想通了,在情节提要中的情节提要 ID 下为导航控制器命名,并为该行命名:

 let vc = storyboard.instantiateViewControllerWithIdentifier("VolunteerVC")

将视图控制器的名称替换为您为导航控制器指定的名称。

【讨论】:

以上是关于如何以编程方式快速实例化具有嵌入式导航控制器的视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式在导航控制器上推送下一个视图控制器?

如何在没有情节提要的情况下以编程方式实例化视图控制器

使用自定义初始化程序 swift 以编程方式实例化和推送视图控制器

以编程方式将导航控制器嵌入模态视图控制器

从 Restkit 成功的上下文中以编程方式导航视图控制器

如何在 ios 9 中以编程方式导航到另一个具有“当前上下文”表示的视图控制器,目标 C