我有一个导航控制器,它连接了一个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];
}
}
现在可行。
答案 0 :(得分:0)
segue不应该来自UITableView。 segue应该来自navigationcontroller。你能否确认你是从UINavigationController而不是UITableView附加segue?