2012-04-28 3 views
1

Я попытался представить modal view controller на вид, который загрузился.не может представить 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

+0

@jamihash: +1 для ответа. Я думаю, вам нужно опубликовать это как ответ. Поскольку это правильное решение, и вы были самым ранним, чтобы указать на этот факт. –

ответ

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

Я не думаю, что это то же самое, что и презентация modalView с анимированным YES. Хотя это может быть одинаково, если пользователь не хочет показывать, что он представлен и отклонен анимированным образом. –

+0

Да, он может использовать это также. Но тогда он должен добавить на нынешний вид модели, такой как subview, чем это будет хорошо для него. – vishiphone

Смежные вопросы