我正在将iphone项目转换为ipad。在iPhone上,我有一个mainViewController,它使用addSubView打开一个loginViewController。

在iPad上,我想在弹出窗口中显示该loginViewController。所以我做了类似的事情:

UIPopoverController *loginPop = [[UIPopoverController alloc] initWithContentViewController:loginViewController];
[loginPop presentPopoverFromRect:CGRectMake(150, 150, 90, 90) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:true];

这很好。问题是当loginViewController完成其“业务”时。在iPhone上,我只调用了一个简单的[self.view removeFromSuperview];,但是在ipad上,这导致 View 从PopoverController中删除,但弹出框保持不变。

所以我的问题是:是否有任何简单的方法可以从loginViewController内删除其PopoverController容器(不使用委托(delegate)或通知)?

最佳答案

是的,您的loginViewController应该保留对弹出窗口的引用。然后,您可以使用弹出式窗口本身的dismissPopoverAnimated:方法将其删除。

关于iPad:如何从 "popped"ViewController中关闭UIPopoverController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5417273/

10-12 01:50