执行segue丢失导航控制器

时间:2018-08-14 14:13:07

标签: swift uinavigationcontroller uistoryboard uistoryboardsegue pushviewcontroller

我有一个Show类型的UiStoryboardSegue标识符。它从UIViewController abSegue导航到A。 在整个应用程序中,我使用了自定义的UINavigationController,它工作得很好,但是在这里却不能。

使用B会导致self.performSegue(id: "abSegue", sender: self)丢失,但是使用

UINavigationController

工作正常,我收到预期的let controller = UIStoryboard(name: "Storyboard", bundle: bundle).instantiateViewController(withIdentifier: "B") navigationController?.pushViewController(controller)

什么会导致这种行为?

3 个答案:

答案 0 :(得分:1)

使用

self.performSegue(withIdentifier: segueID, sender: self)

答案 1 :(得分:0)

尝试像这样指定UIViewController

    let storyboard = UIStoryboard(name: "Storyboard", bundle: bundle)
    let vcB = searchStoryboard.instantiateViewController(withIdentifier: "B") as! ViewControllerB // or the name of your `UIViewController`
    self.navigationController?.pushViewController(vcB, animated: true)

答案 2 :(得分:0)

请注意,当您通过界面构建​​器连接segue时,必须指定具有多种选项的segue类型:showpresent modally等。为了将控制器推送到导航中,您应该为segue的类型选择show(对于swift的先前版本为push),否则它将以模态显示控制器