Swift:使用委托在模态视图上显示导航栏/顶部栏

时间:2016-07-01 13:38:53

标签: swift uinavigationcontroller modal-dialog uikit

我正试图强制导航栏在模态视图上显示。根据{{​​3}},我试图通过在特殊的导航控制器nextScreenViewController中嵌入模态视图nextScreenNavigationController来实现这一点。

但是,我使用委托模式在初始viewController和nextScreenViewController之间传递数据。在嵌入navigationController之前,我正在使用以下代码:

override func prepareForSegue(segue: UIStoryboardSegue, sender:   AnyObject?) {
     if segue.identifier == "goToNextScreen" {      
         let nextScreenDelegate = segue.destinationViewController as! nextScreenViewController
          nextScreenDelegate.delegate = self
     }
}

this answer建议,为了考虑nextScreenNavigationController,我应该使用像...这样的代码。

 override func prepareForSegue(segue: UIStoryboardSegue, sender:   AnyObject?) {
      if segue.identifier == "goToNextScreen" {
          let navigation: UINavigationController = segue.destinationViewController as! nextScreenNavigationController
          var nextScreenDelegate = nextScreenViewController.init()
          nextScreenDelegate = navigation.viewControllers[0] as! nextScreenViewController
          nextScreenDelegate.delegate = self
  }
}

然而,在没有崩溃的情况下失败 - 没有数据传递。

如果您想要更多我的委托模式,请发表评论......我只是想确定它不是一个基本的实现问题。或者,有没有更好的方法在模态视图上显示导航栏?

1 个答案:

答案 0 :(得分:0)

对不起 - 没关系!我意识到上面的代码是有效的,我的问题是我没有在storyboard中为navigationController分配类nextScreenNavigationController