如何使popover视图不忽略设备的大小类?

时间:2015-08-11 23:59:03

标签: ios uistoryboard

我有一个使用Interface Builder制作的故事板。我已将其修改为" Regular Width |常规高度"大小等级。当正常显示(占据整个屏幕)时,会确认尺寸等级修改,并且在适当的设备上看起来确实不同。

但是,当显示为弹出视图时(用于显示它的segue的类型为"显示为Popover"),将忽略大小类修改。无论设备如何,弹出窗口视图都使用默认的" Any"大小等级。

我正在寻找一种方法来强制确认设备的大小类,并使用适当的更改显示故事板。我没有使用默认的弹出窗口视图大小;每台设备的尺寸都不同。

最后要注意的是,我已经覆盖了一个函数,并在显示弹出视图的视图中添加了一个新函数,以确保弹出视图在iPhone上显示为弹出窗口,而不是全景:

//Forces the settings view controller to be displayed as a popover on an iPhone
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.destinationViewController as? SettingsViewController != nil {
        if let controller = segue.destinationViewController as UIViewController! {
            controller.popoverPresentationController!.delegate = self
            controller.preferredContentSize = CGSize(width: view.frame.size.width/2, height: view.frame.size.height/3)
        }
    }
}

func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
    // Return no adaptive presentation style, use default presentation behaviour
    return .None
}

0 个答案:

没有答案