iPad:如何从"弹出"的ViewController中关闭UIPopoverController

Joh*_*ann 5 popover ipad dismiss uipopovercontroller

我正在转换和iphone项目到ipad.在iphone上我有一个mainViewController,用于打开loginViewController addSubView.

在iPad上我想在popover中显示loginViewController.所以我做了类似的事情:

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

这很好用.问题是loginViewController完成其"业务".在iPhone上我只是称之为简单[self.view removeFromSuperview];但在ipad上这会导致视图从PopoverController中移除,但弹出框架保持不变.

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

lxt*_*lxt 9

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

  • 给出循环参考的Wouldent?由于PopoverController是使用loginController初始化的(显然有一个引用)?看起来像这里的反模仿......任何人? (2认同)