在中间向后滑动期间出现奇怪的行为

时间:2016-10-19 08:41:49

标签: ios swift uitableview

我遇到了一个奇怪的故障,我可以在顶视图控制器被解除之前使用之前的视图控制器。

在我的主视图控制器中,我有一个带有委托函数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"控制器。

如何阻止此行为发生?

1 个答案:

答案 0 :(得分:0)

在滑动时创建Notification,检查您的目标控制器.isKindOfClass是否为当前控制器。如果没有,请制作segue。