如何解除模态segue然后执行push segue到新视图控制器 [英] How can I dismiss a modal segue then perform push segue to new view controller
问题描述
在解雇<$ c $后,我试图从导航控制器
执行 push segue
c> modal 之前通过导航控制器显示
。
I'm trying to perform a push segue
from a navigation controller
, after dismissing a modal
that was previously presented over the navigation controller
.
内部模态( UIViewController
):
func textFieldShouldReturn(textField: UITextField) -> Bool {
var searchNav = SearchNavigationController()
self.dismissViewControllerAnimated(true, completion: {searchNav.goToNextView()})
return true
}
内部 SearchNavigationController
:
func goToNextView() {
performSegueWithIdentifier("searchNavigationToNextView", sender: self)
}
问题是,当我点击返回时,我收到此错误:
The issue is that when I hit return, I get this error:
由于未捕获的异常而终止应用程序
'NSInvalidArgumentException',原因:'Receiver
()没有带有
标识符的segue'searchNavigationToNextView''
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver () has no segue with identifier 'searchNavigationToNextView''
segue出现在我的故事板
中,从 UINavigationController
到下一个视图
。
The segue is present in my storyboard
, going from the UINavigationController
to the next view
.
编辑:试过这个,其中_sender在SingleSearchViewcontroller中声明为var _sender = self并且它不起作用。
tried this, where _sender is declared in SingleSearchViewcontroller as var _sender = self and it did not work.
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "searchNavigationToSingleSearch" {
let singleVC = segue.destinationViewController as! SingleSearchViewController
singleVC._sender = self
}
}
推荐答案
将代码更新为,
func textFieldShouldReturn(textField: UITextField) -> Bool {
var searchNav = SearchNavigationController()
self.dismissViewControllerAnimated(true, completion: {self.presentingViewController.goToNextView()})
return true
}
这篇关于如何解除模态segue然后执行push segue到新视图控制器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!