【发布时间】:2014-08-30 16:36:32
【问题描述】:
我有一个导航控制器,它连接了一个 tableView 控制器。 tableView 有一个视图。在完成边缘滑动后,从程序中调用此 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'
有人有什么想法吗?
编辑!
问题解决了。 这是手势识别器触发了两次,我添加了一个 if 语句来检查它是否刚刚开始。现在编码:
-(void)handleEdgeSwipe:(UIScreenEdgePanGestureRecognizer *)swipe
{
if (swipe.state == UIGestureRecognizerStateBegan) {
[self performSegueWithIdentifier:@"SettingS" sender:nil];
}
}
现在可以了。
【问题讨论】:
标签: ios objective-c uitableview ios7 uinavigationcontroller