我有一个使用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
}