2013-04-17 6 views
1

누구든지 전에 본 적이 있습니까? iPad 시뮬레이터에는 About 컨트롤러가 있습니다. 모달로 표시하고 사용자가 닫기 버튼을 클릭하게하십시오.dismissViewControllerAnimated : 완료 : 효과 없음

조금 복잡해지기 위해 iAd 배너와 "메인 메뉴"보기 컨트롤러를 제공하는 기본 View Controller가 있습니다. 버튼이 주 메뉴에 있으므로 IBAction이 주 메뉴보기 제어기로 전송됩니다. 메인 메뉴 VC에서

, 내가 응용 프로그램보기 컨트롤러를 가리키는 속성을, 그래서 전화 :

AboutViewController *about = [[AboutViewController alloc] initWithNibName:....]; 
about.callingViewController = viewController; 
[viewController presentViewController:about animated:YES completion:nil]; 

을 그럼보기 컨트롤러에 관하여, 나는 그것을 일축 IBAction를이 :

- (void) dismissAbout:(id)sender 
{ 
    [callingViewController dismissViewControllerAnimated:YES completion:nil]; 
} 

dismissAbout가 호출되면 아무 일도 일어나지 않습니다. 뷰가 사라지지 않고 디버거 콘솔에 출력되지 않습니다. 어떤 아이디어?

답변

2

IBAction를이 두 번째

- (IBAction) dismissAbout:(id) 

당신이 다른 답변, 당신이 사용할 수있는 말하는 것처럼 그렇게 대신 callingViewController

+0

또한 @ssantos, 그 것이었다. 나는 메시지를 전했다. (.h는 dismissAbout을 IBAction으로 선언하고, .m은 void로 선언합니다 .IBAction은 void의 별명입니다.) –

3

내가 대신

[self dismissViewControllerAnimated:YES completion:nil]; 

를 호출 할 필요가 있다고 생각합니다.

0

self를 사용해야 aboutController을 dimissing 있습니다해야하기 때문에 [자기 ...이 기각] 그 메시지 표시 컨트롤러에 자동으로 전달됩니다. 또한 모달 컨트롤러에는 사용자를 표시 한보기 컨트롤러를 가리키는 presentingViewController 속성이 있으므로 [self.presentingViewController dismiss ..]를 사용할 수 있습니다. callViewController를 만들고 전달할 필요가 없습니다.

관련 문제