2014-10-09 5 views
6

내가 너무과 누르면됩니다 때 모달가 나타납니다 같은 버튼이 탭보기 컨트롤러가 제공됩니다 를 닫고과 같이 새로운 뷰 컨트롤러를 밀어 :

ProfilesViewController *profile = [[ProfilesViewController alloc] init]; 
[self.navigationController pushViewController:profile animated:YES]; 

을하지만 나는 그것의 모달로 포스트 VC에서 그것을 할 수 없습니다. 어떻게해야합니까?

+0

왜 나타나기 전에 뭔가 선물하고 기각해야합니까? – EridB

+0

나는 그것을하지 않고있다 – cdub

답변

7

completionBlock을 사용해보세요.

CompletionBlock은 presentViewController가 완료되면 호출됩니다.

PostViewController *post = [[PostViewController alloc] init]; 
[con presentViewController:post animated:YES completion:^{ 
    ProfilesViewController *profile = [[ProfilesViewController alloc] init]; 
    [self.navigationController pushViewController:profile animated:YES]; 
}]; 

추가 정보에 대한 presentViewController:animated:completion:Apple Doc

으로 완료 블록이 프레젠테이션 완료된 후 실행할. 이 블록은 반환 값이없고 매개 변수를 사용하지 않습니다. 이 매개 변수에 대해 nil을 지정할 수 있습니다.

+0

좋아, 그것은 그것을 모달 뒤에 넣는다? – cdub

+0

navigationController 스택을 푸시합니다. – thedjnivek

+1

이전에 모달을 닫으려면 completionBlock을 사용하여'dismissViewControllerAnimated : completion :'을 추가 할 수 있습니다. – thedjnivek

1

UINavigationController에 탭보기 컨트롤러가 포함되어 있습니까? 그렇지 않은 경우 당연히 self.navigationController를 사용할 수 없습니다.

+0

그것은 포함하지 않습니다 – cdub