2013-04-17 101 views
1

有沒有人見過這個?在iPad模擬器中,我有一個關於視圖控制器。我想以模態方式呈現它,並讓用戶點擊關閉按鈕。dismissViewControllerAnimated:完成:沒有效果

要有點複雜了,我有一個主視圖控制器,呈現一個iAd的橫幅和「主菜單」視圖控制器。該按鈕位於主菜單上,所以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) 

其次你dimissing的aboutController所以應使用self代替callingViewController

+0

此外@ssantos,就是這樣,我不得不自我消息。 (該.H聲明dismissAbout如IBAction爲,而.M聲明爲無效。IBAction爲是無效的別名。) –

3

我認爲你需要調用

[self dismissViewControllerAnimated:YES completion:nil]; 

代替。

0

至於其他的答案說,你可以使用[自駁回...],因爲該消息被自動轉發到呈現視圖控制器。你也可以使用[self.presentingViewController解僱..]因爲一個模態控制器具有指向所呈現你的視圖控制器presentingViewController屬性。沒有必要創建並傳遞callingViewController。