使用模态视图控制器关闭popover

时间:2012-02-22 17:48:21

标签: ios ipad uipopovercontroller modalviewcontroller dismiss

我有内置导航控制器,然后我通过以下方式在此弹出框中显示ABPeoplePickerNavigationController:

self.abPicker.modalPresentationStyle = UIModalPresentationCurrentContext;
self.abPicker.modalInPopover = YES;
[self presentModalViewController:self.abPicker animated:YES];

问题是在这个阶段不能解除弹出窗口,当我按下弹出区域外,没有任何事情发生。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您忘了分配代理人(peoplePickerDelegate)。只有委托事件可以关闭呈现的视图控制器,因此您绝对需要委托。委托事件将在ABPeoplePickerNavigationController上调用dismiss...

如果您不希望生成的弹出窗口是模态的,那么为什么要使用presentModalViewController呈现ABPeoplePickerNavigationController?这就是模态的意思!你正在模仿,然后抱怨它的模态;这就像打自己的脸,然后抱怨你的脸被击中。 (更不用说你也将modalInPopover设置为YES,这样你就会两次击中脸部。)

iPad上常见的事情是实例化ABPeoplePickerNavigationController并直接将其用作新的弹出控制器的视图控制器。