iPhone 在 iOS 10 中无法正常工作的弹出窗口?
Segue to popover for iPhone not working in iOS 10?
我想在 iOS 10 中切换到弹出窗口,这段代码过去在 iPhone 上可以正常工作,但现在不行(它显示全屏),我做错了什么? segue 设置为 "Present As Popover".
override func prepare(for segue:UIStoryboardSegue, sender:AnyObject!) {
if segue.identifier == "about" {
let aboutController = segue.destination as! AboutController
aboutController.preferredContentSize = CGSize(width:300, height:440)
let popoverController = aboutController.popoverPresentationController
if popoverController != nil {
popoverController!.delegate = self
popoverController!.backgroundColor = UIColor.black
}
}
}
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
return .none
}
弹出框是 iPad 独有的功能。
UIKit 足够聪明,可以确定它应该在 iPhone/iPod.
上以模态方式呈现它
许多功能已在 Swift 3 中重命名,包括 adaptivePresentationStyleForPresentationController
- 现在是 adaptivePresentationStyle(for:)
将代码更改为
func adaptivePresentationStyle(for controller:UIPresentationController) -> UIModalPresentationStyle {
return .none
}
由于您的函数名称不匹配,因此未被调用,并且因为它是协议中的可选函数,所以您没有收到警告。
我想在 iOS 10 中切换到弹出窗口,这段代码过去在 iPhone 上可以正常工作,但现在不行(它显示全屏),我做错了什么? segue 设置为 "Present As Popover".
override func prepare(for segue:UIStoryboardSegue, sender:AnyObject!) {
if segue.identifier == "about" {
let aboutController = segue.destination as! AboutController
aboutController.preferredContentSize = CGSize(width:300, height:440)
let popoverController = aboutController.popoverPresentationController
if popoverController != nil {
popoverController!.delegate = self
popoverController!.backgroundColor = UIColor.black
}
}
}
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
return .none
}
弹出框是 iPad 独有的功能。 UIKit 足够聪明,可以确定它应该在 iPhone/iPod.
上以模态方式呈现它许多功能已在 Swift 3 中重命名,包括 adaptivePresentationStyleForPresentationController
- 现在是 adaptivePresentationStyle(for:)
将代码更改为
func adaptivePresentationStyle(for controller:UIPresentationController) -> UIModalPresentationStyle {
return .none
}
由于您的函数名称不匹配,因此未被调用,并且因为它是协议中的可选函数,所以您没有收到警告。