簡體   English   中英

Xcode 9 中未調用 viewwillappear 和 viewdidappear

[英]viewwillappear and viewdidappear not called in Xcode 9

我有一個 iPad 應用程序,我將 Landingviewcontroller 添加到導航控制器並將此導航控制器添加到窗口的 rootviewcontroller。 我曾經在 LandingviewController 的 viewwillappear 中執行一些操作。 但是,突然在 Xcode9 中它停止調用。 這是我的代碼 -

- (void) applicationDidFinishLaunching: (UIApplication *) application {

     self.landingPageController = [[LandingPageViewController alloc] init];
     self.introViewController = [[UINavigationController alloc] initWithRootViewController:self.landingPageController];

    _window.rootViewController = self.introViewController;
    [_window makeKeyAndVisible];
}

LandingPageViewController中不會調用ViewDidAppearViewWillAppear方法。

知道為什么沒有調用這些方法嗎?

編輯:添加了 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

目標部署配置

檢查你的targets配置,刪除Main Interface的值,然后在didFinishLaunchingWithOptions的開頭添加代碼。 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM