Show Segue使用错误的presentViewController,导致错误的导航

时间:2016-02-24 20:27:12

标签: ios swift

我正在尝试修改编辑区段(在IB中显示),我可以点击“编辑报告详细信息”和#39;按钮在工具栏上,它将显示Sece到'配置报告'查看控制器。

但是,如果我点击取消,它会一直回到我的登录界面,因为presentViewController是一个UINavigationController,即使它不应该是。

这是故事板。 http://i.imgur.com/DK4HhpO.png

有什么想法吗?

// MARK: Navigation
@IBAction func cancel(sender: UIBarButtonItem) {
    // Depending on style of presentation (modal or push presentation), this view controller needs to be dismissed in two different ways.
    let isPresentingInAddItemMode = presentingViewController is UINavigationController

    if isPresentingInAddItemMode {
        dismissViewControllerAnimated(true, completion: nil)
    }
    else {
        // In this mode (push presentation), we need to pop the view controller to get rid of it, rather than dismissing
        navigationController!.popViewControllerAnimated(true)
    }
}

1 个答案:

答案 0 :(得分:0)

这就是我在代码中所做的全部工作。

@IBAction func cancel(sender: AnyObject) {
    self.navigationController?.popViewControllerAnimated(true)
}

您可能需要先检查发送给您的segue标识符。

@IBAction func cancel(sender: AnyObject) {
   if (segue.identifier == "Edit") {
    self.navigationController?.popViewControllerAnimated(true)
   } else if (segue.identifier == "Add") {
    self.navigationController?.popViewControllerAnimated(true)
}

通过这种方式,它知道要遵循哪一个。它也可能取决于你首先如何看待视图。