viewwillappear和viewdidappear没有在Xcode 9中调用

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]; 
} 

ViewDidAppearviewWillAppear中方法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]; 
} 
+0

显示你'viewWillAppear'&'viewDidAppear'。 –

+0

是向你展示的视图? –

+1

不应introViewController是窗口的根VC吗?你写道,导航控制器是窗口的根,但在代码中它看起来相反。 –

更换

_window.rootViewController = self.landingPageController; 

_window.rootViewController = self.introViewController; 

Navigation controller应该在你的情况下,你rootviewcontroller

+0

如果它没有分配'UINavigationController'也它将与'导航控制器'一起工作 –

+0

是的,这是正确的,但是当他以导航控制器作为根,因此他应该将导航设置为窗口的根! @ Anbu.Karthik – Lion

+0

@ Lion-不是一个修饰, –

Targets Deployment config

检查你的目标配置,删除主界面的数值,然后添加代码在开始didFinishLaunchingWithOptions的。 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]