2012-04-28 60 views
1

我試圖提出一個模式視圖控制器上的視圖加載。不能出現modalViewController

下面的代碼:

if (!self.loginNavViewController_){ 

     AHLoginViewController * loginVC = [[AHLoginViewController alloc] initWithNibName:@"AHLoginViewController" bundle:nil]; 

     /* 
     AHTestViewController * test = [[AHTestViewController alloc] initWithNibName:@"AHTestViewController" bundle:nil]; 
     */ 

     UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:loginVC]; 
     navController.modalPresentationStyle = UIModalPresentationFullScreen; 
     navController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
     navController.title = @"Login to Instagram"; 

     self.loginNavViewController_ = navController; 
     [self presentModalViewController:self.loginNavViewController_ animated:YES]; 


     if (self.loginNavViewController_ == nil){ 
      NSLog(@"NIL"); 
     } else { 
      NSLog(@"NOT NIL"); 
     } 

}

但是我沒有看到正在顯示一個模式視圖控制器。爲什麼??

+6

在viewDidLoad中顯示模型視圖可能爲時尚早。試試viewWillAppear或viewDidAppear。 – jamihash 2012-04-28 03:41:13

+0

@jamihash:答案爲+1。我認爲你需要發佈這個答案。由於這是一個正確的解決方案,您最早指出這一事實。 – 2012-04-28 05:17:10

回答

2

視圖控制器在加載視圖之後以及視圖插入視圖層次結構之前立即收到viewDidLoad。換句話說,它不能呈現模式視圖控制器,因爲它自己的視圖還沒有在任何窗口中。

嘗試在viewWillAppear:viewDidAppear:處做。

0

我認爲你可以使用視圖做負載也我已經使用這個。

InfoViewController *infoViewController = [[InfoViewController alloc]initWithNibName:@"InfoViewController" bundle:nil]; 
UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:infoViewController]; 
[self.navigationController.view addSubview:nav.view]; 

您使用視圖加載時在主視圖上添加了許多模型。

歡迎。

+0

我不認爲這與呈現帶有動畫YES的modalView是一樣的。儘管如果用戶不選擇以動畫形式顯示和解除它,它可能是相同的。 – 2012-04-28 05:15:58

+0

是的,他也可以使用它但是然後他應該添加像子視圖這樣的現有模型視圖,而不是對他有用。 – vishiphone 2012-04-28 07:07:02