我有一个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)
。
什么会导致这种行为?
答案 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类型:show
,present modally
等。为了将控制器推送到导航中,您应该为segue的类型选择show
(对于swift的先前版本为push
),否则它将以模态显示控制器