swift:select 动态 table 单元格和推送或弹出视图控制器,具体取决于堆栈
swift: select dynamic table cell and either push or pop view controller depending on stack
我在动态 table 控制器中有一个列表,嵌入在导航控制器和选项卡控制器(使用故事板)中。从列表中选择一个单元格时,我想:
- 推送,使用 prepareForSegue 将数据收集到新的视图控制器,或者...
- 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
}
}
我在动态 table 控制器中有一个列表,嵌入在导航控制器和选项卡控制器(使用故事板)中。从列表中选择一个单元格时,我想:
- 推送,使用 prepareForSegue 将数据收集到新的视图控制器,或者...
- 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
}
}