在rootViewController之后没有导航栏SWIFT,可以看到UINavigationController但是子UIViewControllers

时间:2016-06-04 22:36:22

标签: swift uiviewcontroller uinavigationbar segue

我正在制作一个快速的应用程序,我从UIViewController(我的登录屏幕)转到具有根视图的UINavigationController(主屏幕登录后)。这一切都很有效,所有必要的数据都传递给根视图。我的问题是,在我单击UITableViewController上的一个单元格后,它将我带到下一个UIViewController ,但没有导航栏(所以我不能回去)。

我也尝试取消隐藏导航栏但没有成功,我真的觉得它不存在。

我不确定这些是否是导致问题的提示但这里有一些我在调试器中得到的警告 Warning messages

这是我的故事板的结构 My storyboard

以下是我从登录到主屏幕的代码

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "segueToTeams" {
       if let user = self.user{
            let navController = segue.destinationViewController as! UINavigationController
            let welcomeView = navController.topViewController as! TeamsTableViewController
            welcomeView.user = user
       }
    }
}
func goToTeamsView(storyBoard : UIStoryboard){

    let welcomeView = storyBoard.instantiateViewControllerWithIdentifier("teamsView")

    let navigationController = UINavigationController(rootViewController: welcomeView)
    super.performSegueWithIdentifier("segueToTeams", sender: self)
    super.presentViewController(navigationController, animated: true, completion: nil)
}

最后,我的代码是从UINavigationViewController的根视图控制器(在故事板截图中选择Team视图)到下一个(单个团队视图控制器),它应该有导航栏但不是< / p>

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    performSegueWithIdentifier("selectTeamCellSegue", sender: indexPath.row)

}

如果您需要任何其他信息,请与我们联系。我一直在努力解决这个问题的时间比我想承认的还要长,非常感谢任何帮助/建议!

1 个答案:

答案 0 :(得分:1)

您可以在故事板中选择视图控制器,然后选择&#34;编辑&#34; - &GT; &#34;嵌入&#34; - &GT; &#34;导航控制器&#34;。然后,您可以添加BarButtonItem来回来回。我想你正在使用模态segue?据我所知,这种方式您的视图控制器不会自动嵌入到您的初始导航控制器中。

希望这有帮助