2017-09-26 86 views
1

我有一個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嗎?你寫道,導航控制器是窗口的根,但在代碼中它看起來相反。 –

回答

1

更換

_window.rootViewController = self.landingPageController; 

_window.rootViewController = self.introViewController; 

Navigation controller應該在你的情況下,你rootviewcontroller

+0

如果它沒有分配'UINavigationController'也它將與'導航控制器'一起工作 –

+0

是的,這是正確的,但是當他以導航控制器作爲根,因此他應該將導航設置爲窗口的根! @ Anbu.Karthik – Lion

+0

@ Lion-不是一個修飾, –

0

Targets Deployment config

檢查你的目標配置,刪除主界面的數值,然後添加代碼在開始didFinishLaunchingWithOptions的。 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]

相關問題