我在我的应用程序的根视图控制器的第一级添加了一个平移手势,让用户在任何地方滑动以转到导航堆栈中的上一级(手势不在 0 级以防止进入黑色洞 :) )。这在 7 之前的 iOS 版本上有效并且仍然可以正常工作。
当我尝试使用 iOS 7 向后滑动时,我在控制台中收到以下消息: [11050:a0b] 嵌套弹出动画可能导致导航栏损坏 [11050:a0b] 在意外状态下完成导航转换。导航栏子视图树可能会损坏。
此时,应用程序还没有崩溃。
然后,当我尝试再次滑回上一级时,它崩溃了。我只是想弄清楚为什么这个错误在 iOS 7 中出现了,以及如何修复它。任何帮助都将得到应有的高度赞赏!
这是我的代码:
RootViewController.m:
- (void)viewDidLoad
{
[super viewDidLoad];
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(pop:)];
pan.delegate = self;
[self.view addGestureRecognizer:pan];
}
- (void)pop:(UIPanGestureRecognizer*)pan
{
if (pan.state == UIGestureRecognizerStateBegan || pan.state == UIGestureRecognizerStateChanged)
{
CGPoint vel = [pan velocityInView:self.view];
if (vel.x > 1000)
{
[self.navigationController popViewControllerAnimated:YES];
}
}
}