我正在为 iOS 7 更新我的应用程序,我发现了一个奇怪的问题。我正在使用 UIModalTransitionStyleFlipHorizontal 展示一个包裹在 UINavigationController 中的 UIViewController。
在 iOS 6 中,它工作正常,但在 iOS 7 中,导航栏在转换后跳动。这跟状态栏有关系吗?我已将主导航栏的半透明设置为 NO。
在 Info.plist 中,View controller-based status bar appearance 设置为 NO。
这是一个显示最小演示应用程序问题的 GIF:
这是我的代码:
feedNavigationController = [[UINavigationController alloc] init];
feedNavigationController.navigationBar.translucent = NO;
SettingsViewController *settingsVC = [[SettingsViewController alloc] init];
feedNavigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[feedNavigationController setViewControllers:[NSArray arrayWithObjects:settingsVC, nil]];
[self presentViewController:feedNavigationController animated:YES completion:nil];
最佳答案
这似乎是一个 UIKit 错误。以下解决方法似乎可以解决我的问题。
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationController.navigationBar.layer removeAllAnimations];
}
(将它放在您要转换到的 View Controller 中)。
关于iOS7 UIModalTransitionStyleFlipHorizontal 在过渡后反弹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18781519/