导航控制器后退按钮在使用第二个故事板时未显示

时间:2017-01-20 18:21:55

标签: ios xcode storyboard navigationcontroller

我有两个故事板。 在Main.storyboard中我有一个带按钮的视图控制器。单击按钮时,我加载第二个故事板Second.storyboard。这是我用来加载Second.storyboard

的代码
DispatchQueue.main.async {
    let storyBoard : UIStoryboard = UIStoryboard(name: "Second", bundle:nil)

    let nextViewController = storyBoard.instantiateViewController(withIdentifier: "Tools") as UIViewController
    self.present(nextViewController, animated:true, completion:nil)
}

在Second.storyboard中,我有一个导航控制器和2个视图控制器A和B.

问题是,在跑步时,我没有看到B中的后退按钮返回A。

我尝试过的事情: 我创建了另一个项目。我在main.storyboard中嵌入了导航控制器和2个视图控制器A和B.这很好用。显示后退按钮。这告诉我,当我加载第二个故事板时,我错过了一些东西

我尝试添加此

// Do any additional setup after loading the view.
self.title = "Title"

let navigationBar = navigationController!.navigationBar
navigationBar.tintColor = UIColor.blue

let leftButton =  UIBarButtonItem(title: "Left Button", style: UIBarButtonItemStyle.plain, target: self, action: nil)
let rightButton = UIBarButtonItem(title: "Right Button", style: UIBarButtonItemStyle.plain, target: self, action: nil)

navigationItem.leftBarButtonItem = leftButton
navigationItem.rightBarButtonItem = rightButton

我看到一些样本加载了没有此行DispatchQueue.main.async {}的故事板。然而;如果我不使用它,我会收到错误并且程序会崩溃。

如何添加导航控制器?我选择了第一个View Controller,Editor,Embed in,Navigation Controller。

我正在尝试在第二个故事板上显示导航控制器,但它没有显示后退按钮。

有人说这是我想要做的第二个应用程序,非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

在呈现“第二”后你看到了什么?您是否看到了导航标题/标题区域?只是缺少后退按钮?

  • 你是如何从A推动B的?

  • 我怀疑“工具”不是“秒”中的导航控制器。在调用storyBoard.instantiateViewController(withIdentifier: "Tools")时,您希望引用导航控制器 - 而不是A。

答案 1 :(得分:0)

调用presentViewController在现有导航堆栈之外以模态方式呈现视图控制器;它不包含在您的UINavigationController或任何其他内容中。如果您希望新视图控制器具有导航栏,则有两个主要选项:

将新视图控制器推送到现有导航堆栈,而不是以模态方式呈现:

让VC1 = self.storyboard!.instantiateViewControllerWithIdentifier(“MyViewController”)为!视图控制器 self.navigationController!.pushViewController(VC1,animated:true)

我在这篇文章中找到了这个答案://stackoverflow.com/questions/25444213/presenting-viewcontroller-with-navigationviewcontroller-swift