swift:select 动态 table 单元格和推送或弹出视图控制器,具体取决于堆栈

swift: select dynamic table cell and either push or pop view controller depending on stack

我在动态 table 控制器中有一个列表,嵌入在导航控制器和选项卡控制器(使用故事板)中。从列表中选择一个单元格时,我想:

  1. 推送,使用 prepareForSegue 将数据收集到新的视图控制器,或者...
  2. pop,使用委托进行数据传输,如果我从另一个 tabbed/navigated 控制器通过 segue 到达动态 table 控制器。

目前,我已经获得了 protocol/delegate/didSelectRowAtIndexPath(弹出)的标准代码,并覆盖了 prepareForSegue(推送)。

如果我正在推送,一切都很好,但是当我希望弹出时,结果是快速推送,紧接着自动弹出,回到列表。

我不希望向动态 table 单元添加附件以进行推送,但也许这是唯一的方法?有什么建议吗?

考虑 shouldPerformSegueWithIdentifier 方法:

override func shouldPerformSegueWithIdentifier(identifier: String?, sender: AnyObject?) -> Bool {
    if /* you determine this */ {
        self.navigationController?.popViewControllerAnimated(true)

        return false
    } else {
        return true
    }
}