viewwillappear和viewdidappear没有在Xcode 9中调用
我有一个iPad应用程序,我将Landingviewcontroller添加到navigationcontroller并将此navigationcontroller添加到窗口的rootviewcontroller。我曾经在LandingviewController的viewwillappear中执行过一些操作。但是,在Xcode9中突然停止了呼叫。这里是我的代码 -viewwillappear和viewdidappear没有在Xcode 9中调用
- (void) applicationDidFinishLaunching: (UIApplication *) application {
self.landingPageController = [[LandingPageViewController alloc] init];
self.introViewController = [[UINavigationController alloc] initWithRootViewController:self.landingPageController];
_window.rootViewController = self.introViewController;
[_window makeKeyAndVisible];
}
ViewDidAppear和viewWillAppear中方法LandingPageViewController不叫。
任何想法为什么这些方法没有被调用?
编辑:添加viewDidAppear和viewWillAppear中方法
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:YES];
[self setupCoverView];
}
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
// load news view controller
[self news:userChanged];
}
更换
_window.rootViewController = self.landingPageController;
与
_window.rootViewController = self.introViewController;
Navigation controller
应该在你的情况下,你rootviewcontroller
!
如果它没有分配'UINavigationController'也它将与'导航控制器'一起工作 –
是的,这是正确的,但是当他以导航控制器作为根,因此他应该将导航设置为窗口的根! @ Anbu.Karthik – Lion
@ Lion-不是一个修饰, –
检查你的目标配置,删除主界面的数值,然后添加代码在开始didFinishLaunchingWithOptions的。 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]
显示你'viewWillAppear'&'viewDidAppear'。 –
是向你展示的视图? –
不应introViewController是窗口的根VC吗?你写道,导航控制器是窗口的根,但在代码中它看起来相反。 –