我遇到了一个奇怪的故障,我可以在顶视图控制器被解除之前使用之前的视图控制器。
在我的主视图控制器中,我有一个带有委托函数didSelectRowAtIndexPath的表视图。功能如下:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
performSegueWithIdentifier("commentsSegue", sender: self)
}
这很有效,但是如果我已经显示此屏幕,如果我再次向后滑动,我可以再次选择它。这有点难以解释,但您可以使用手指向后滑动,另一个用于选择主视图控制器上的单元格。这为新的" commentsSegue"创造了另一个segue。我可以随心所欲地多次这样做,它会动作很多段。
我试图通过使用
来解决这个问题if (self.presentingViewController?.presentedViewController == self) {
以及
if (self.navigationController?.topViewController.title == self.title) {
但是这两个函数都将主视图控制器作为活动视图控制器而不是" commentsSegue"控制器。
如何阻止此行为发生?
答案 0 :(得分:0)
在滑动时创建Notification
,检查您的目标控制器.isKindOfClass
是否为当前控制器。如果没有,请制作segue。