我正在为iOS 7更新我的应用程序,但发现了一个奇怪的问题。我提出了一个用UIModalTransitionStyleFlipHorizontal
包裹在UINavigationController中的UIViewController。
在iOS 6中,它工作正常,但在iOS 7中,过渡后导航栏会反弹。这与状态栏有关吗?我已将主导航栏的透明度设置为NO
。
在Info.plist中,基于View Controller 的状态栏外观设置为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 中)。