我注意到当我转向Naviagtion控制器时,导航栏在翻转动画完成后稍微跳转.
它只在我使用翻转水平segue时执行此操作,而不是在我使用默认的上滑动画时.
这是我用来说明问题的GIF(抱歉这个小尺寸!):
http://i.imgflip.com/3ym0y.gif
记下带有标题“Modal”的导航栏 – 注意它在动画后向下跳~20个像素.
上面的例子是用一个新项目创建的 – 我没有细分UINavigationController或UINavigationBar.这是故事板,如果有帮助:
http://i.imgur.com/qFlK2oB.jpg
我错过了什么?
解决方法
将此添加到您以模态方式呈现的控制器中的viewWillAppear:
- (void)viewWillAppear:(BOOL)animated { // Workaround #1 for jumpy navbar [self.navigationController.navigationBar.layer removeAllAnimations]; }
当解雇控制器时(所以在与上面相同的控制器中):
// Workaround #2 for jumpy navbar [UIView transitionWithView:self.navigationController.view duration:0.75 options:UIViewAnimationOptionTransitionFlipFromLeft animations:nil completion:nil]; [self dismissViewControllerAnimated:YES completion:nil];