如何解除模态segue然后执行push segue到新视图控制器

mat*_*bor 5 uiviewcontroller uinavigationcontroller ios segue swift

我试图在解雇之前提出的push segue一个navigation controller之后执行a .modalnavigation controller

内部modal(UIViewController):

func textFieldShouldReturn(textField: UITextField) -> Bool {
    var searchNav = SearchNavigationController()
    self.dismissViewControllerAnimated(true, completion: {searchNav.goToNextView()})
    return true
}
Run Code Online (Sandbox Code Playgroud)

内部SearchNavigationController:

func goToNextView() {
    performSegueWithIdentifier("searchNavigationToNextView", sender: self)
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我点击返回时,我收到此错误:

由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'Receiver()没有带标识符'searchNavigationToNextView''的segue

segue存在于我的身边storyboard,从一直UINavigationController到另一个next view.

在此输入图像描述

编辑:试过这个,其中_sender在SingleSearchViewcontroller中声明为var _sender = self,但它不起作用.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "searchNavigationToSingleSearch" {
            let singleVC = segue.destinationViewController as! SingleSearchViewController

            singleVC._sender = self
        }
    }
Run Code Online (Sandbox Code Playgroud)

Ash*_* P. 2

将您的代码更新为,

func textFieldShouldReturn(textField: UITextField) -> Bool {
    var searchNav = SearchNavigationController()
    self.dismissViewControllerAnimated(true, completion: {self.presentingViewController.goToNextView()})
    return true
}
Run Code Online (Sandbox Code Playgroud)