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

+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

나는 animated YES로 modalView를 제시하는 것과 같지 않다고 생각합니다. 사용자가 애니메이션 방식으로 제시 및 해제하는 것을 선택하지 않는 경우에도 동일 할 수 있지만 –

+0

그래, 그는 그걸 또한 사용할 수있다.하지만 그는 서브 뷰와 같은 현재 모델 뷰를 추가해야한다. – vishiphone

관련 문제