feedNavigationController

feedNavigationController

我正在为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 中)。

10-08 07:46