nested push animation can result in corrupted navigation bar问题解决

当接受到推送通知时,需要要求跳转到指定的页面。我们登录成功后只有一个viewcontroller,并且为导航视图。所以可以,使用 popToRootViewControllerAnimated 先跳转到根视图,然后在从根视图push到其他视图。

这个理论上是没有问题。但是在实际操作中,页面在跳转到你理想的界面以后,你再使用 

[self.navigationController popViewControllerAnimated:YES];

的时候会出现多出一个 navigation bar,但这个bar并不是你想要的那样。是平白无故多出一个,但是在你打印堆栈的时候你发现堆栈中进出栈并没有错。还有一种情况,那就是控制台打印出如下的错误信息:
nested push animation can result in corrupted navigation bar

Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.

Unbalanced calls to begin/end appearance transitions for .

导致这两种情况的原因那就可能是因为,pop和push的操作太连贯,会造成navgation的动画还没执行完毕,就开始执行下一个了。

解决方案:

[self.navigationController popToRootViewControllerAnimated:YES]; // 这句话的YES,改为NO



转自:http://blog.sina.com.cn/s/blog_9d4a523e0101a0ko.html。

你可能感兴趣的:(nested push animation can result in corrupted navigation bar问题解决)