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