2012-04-28 64 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