当接受到推送通知时,需要要求跳转到指定的页面。我们登录成功后只有一个viewcontroller,并且为导航视图。所以可以,使用 popToRootViewControllerA nimated 先跳转到根视图,然后在从根视图push到其他视图。
的时候会出现多出一个 navigation bar,但这个bar并不是你想要的那样。是平白无故多出一个,但是在你打印堆栈的时候你发现堆栈中进出栈并没有错。还有一种情况,那就是控制台打印出如下的错误信息:
这个理论上是没有问题。但是在实际操作中,页面在跳转到你理想的界面以后,你再使用
[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