在tableView和视图之间移动时出错

时间:2014-07-09 15:06:35

标签: ios objective-c uitableview ios7 uinavigationcontroller

我有一个导航控制器,它连接了一个tableView控制器。 tableView具有视图的segue。在完成边缘滑动之后,从程序调用此segue。 UIScreenEdgePanGestureRecognizer已应用于视图。 这是我称之为segue的代码。

-(void)handleEdgeSwipe:(UIScreenEdgePanGestureRecognizer *)swipe
{

[self performSegueWithIdentifier:@"SettingS" sender:self.navigationController];

}

执行segue,但是当我按下后退按钮时,不显示tableView控制器,只显示带后退按钮的背景图像。这就是我在控制台中得到的结果:

2014-07-09 16:54:34.322 APPNAME[3313:60b] nested push animation can result in corrupted navigation bar

2014-07-09 16:54:34.676 APPNAME[3313:60b] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.

2014-07-09 16:54:34.827 APPNAME[3313:60b] Unbalanced calls to begin/end appearance transitions for FDDSettingsViewController: 0x10945d370.

这是我得到的错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't add self as subview'

任何想法?

EDIT!

问题解决了。 这是手势识别器触发两次,我添加了一个if语句来检查它是否刚刚开始。现在代码:

-(void)handleEdgeSwipe:(UIScreenEdgePanGestureRecognizer *)swipe
{
if (swipe.state == UIGestureRecognizerStateBegan) {
    [self performSegueWithIdentifier:@"SettingS" sender:nil];
}

}

现在可行。

1 个答案:

答案 0 :(得分:0)

segue不应该来自UITableView。 segue应该来自navigationcontroller。你能否确认你是从UINavigationController而不是UITableView附加segue?