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”充当其他对象的委托,所以它仍然可以方便地参与回调等。