我正在将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/