Ios 在没有动画的情况下推视图控制器会导致UINavigationItem疯狂吗?

Ios 在没有动画的情况下推视图控制器会导致UINavigationItem疯狂吗?,ios,uinavigationcontroller,Ios,Uinavigationcontroller,我正在用动画将一个viewController推到UINavigationController上,被推上的控制器基本上做了如下操作: ——应用程序代表: [((UINavigationController *)window.rootViewController) pushViewController:initialController animated:YES]; - (void)viewDidLoad { [super viewDidLoad]; if (self.shoul

我正在用动画将一个
viewController
推到
UINavigationController
上,被推上的控制器基本上做了如下操作:

——应用程序代表:

[((UINavigationController *)window.rootViewController) pushViewController:initialController animated:YES];
- (void)viewDidLoad {
    [super viewDidLoad];
    if (self.shouldSkipThisController) {
      SomeOtherViewController *someOther = [[SomeOtherViewController alloc] init];
      [self.navigationController pushViewController:someOther animated:NO];
    }
}
——初始控制器:

[((UINavigationController *)window.rootViewController) pushViewController:initialController animated:YES];
- (void)viewDidLoad {
    [super viewDidLoad];
    if (self.shouldSkipThisController) {
      SomeOtherViewController *someOther = [[SomeOtherViewController alloc] init];
      [self.navigationController pushViewController:someOther animated:NO];
    }
}
这导致了一些我完全不理解的疯狂行为。基本上,在
SomeOtherViewController
上设置的导航项似乎被另一个奇怪的按钮所覆盖,该按钮的名称位于后退按钮中。看起来,尽管
SomeOtherViewController
正在设置它自己的左右导航项,但它们被“默认”后退按钮所覆盖——然后,如果我点击后退按钮,则顶部的导航栏就会显示动画,然后
SomeOtherViewController
的导航项就会出现

我能找到的唯一有效的方法是1)在应用程序委托中不设置初始视图控制器的推送动画,或者2)将
shouldskipthisconneler
条件移动到
viewdideappear
:方法


然而,这两种选择都不理想。。。非常感谢您的帮助。

您是如何在AppDelgate中初始化UINavigationController的?为什么要先按initialViewController,然后立即按其他ViewController?这样做的目的是什么?rdelmar:主要是因为“initialController”充当其他对象的委托,所以它仍然可以方便地参与回调等。