dismissViewControllerAnimated:completion:无效

时间:2013-04-17 21:21:27

标签: ios modalviewcontroller

有没有人见过这个?在iPad模拟器中,我有一个关于视图控制器。我想以模态方式呈现它,并让用户单击关闭按钮。

为了使它复杂化,我有一个主视图控制器,它提供了一个iAd横幅和一个“主菜单”视图控制器。该按钮位于主菜单上,因此IBAction将被发送到主菜单视图控制器。

在主菜单VC中,我有一个指向应用程序View Controller的属性,所以我打电话给:

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时,没有任何反应 - 视图不会消失,调试器控制台中没有输出。有什么想法吗?

3 个答案:

答案 0 :(得分:3)

我想你需要打电话

[self dismissViewControllerAnimated:YES completion:nil];

代替。

答案 1 :(得分:2)

IBAction应该是

- (IBAction) dismissAbout:(id)

其次你正在使用aboutController,所以应该使用self代替callingViewController

答案 2 :(得分:0)

正如其他答案所说,您可以使用[self dismiss ...],因为该消息会自动转发给呈现视图控制器。你也可以使用[self.presentingViewController dismiss ..],因为模态控制器有一个presentViewController属性,指向呈现给你的视图控制器。没有必要创建并传递callingViewController。