在prepareForSegue中获取UIPopoverController参考?

Ján*_*nos 1 interface-builder uipopovercontroller ios segue

Present as Popover在Interface Builder中选择了我的StoryBoard Segue.

在此输入图像描述

我怎样才能获得对UIPopoverController的引用prepareForSegue

我试过这样,但它不在if语句中.

    if segue is UIStoryboardPopoverSegue {
        let popoverSegue = segue as UIStoryboardPopoverSegue
        simpleTableViewController.popoverController = popoverSegue.popoverController
    }
Run Code Online (Sandbox Code Playgroud)

UPDATE

如果你需要popovercontroller,只是为了解雇它,那么解雇自适应视图控制器的方法是:

self.dismissViewControllerAnimated(true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

Jor*_*n H 7

当使用自适应segue Present作为Popover时:

为了得到一个参考UIPopoverController在iOS 7,你将需要检查segue classprepareForSegue,看它是否是一个UIStoryboardPopoverSegue.如果是,请通过popoverController酒店进入popover .如果需要在该视图控制器中将其关闭,请将其存储在目标视图控制器中.

对于iOS 8,UIPopoverController已不复存在,它已被替换为UIPopoverPresentationController.您可以直接在视图控制器中访问它popoverPresentationController,您可以轻松地关闭popover dismissViewControllerAnimated.

所以当使用那个自适应segue时,如果你在iOS 7上运行app,那么segue类将会UIStoryboardPopoverSegue在iOS 8上运行UIStoryboardPopoverPresentationSegue.您不需要使用旧的已弃用的popover segue,它非常简洁,自适应segue会自动转换为旧API,以便向后兼容Universal Storyboards.