使用Xcode10.1和Swift 4.2.1,iOS 12
我在导航控制器里嵌入了一个表格视图。在右上角有一个栏按钮和一个从这个按钮到一个包含静态表格视图的导航控制器的分段(弹出),这里的单元格还有到其他表格视图的序列。
在iPhone上,静态表格视图显示为全屏模式,在iPad上,它是一个弹出式视图,到目前为止还可以。我已经在故事板中设置好了所有东西,不知道这是不是原因,但现在我正在努力检查视图是弹出式还是全屏模式。
我试过了:
print("\(presentationController)")
if presentationController is UIPopoverPresentationController {
// Do something
}
但这不起作用,print("\(presentationController)")
给了我iPhone和iPad上的Optional(<_UIFullscreenPresentationController: 0x7fd00ad45770>)
。
我也尝试过:
if popoverPresentationController != nil {
print("popover")
}
但如果在iPhone或iPad上启动,则会打印popover。
我是不是做错了什么,还是错过了什么?
发布于 2019-03-31 19:25:58
目前我使用的是:
if (popoverPresentationController?.arrowDirection != UIPopoverArrowDirection.unknown) {
tableView.sectionHeaderHeight = CGFloat.leastNormalMagnitude
tableView.sectionFooterHeight = CGFloat.leastNormalMagnitude
}
这很简单,而且很管用。如果有人真的有可能发现"if is popover",非常欢迎你在这里张贴。
发布于 2021-12-04 05:06:11
您可以简单地在显示的ViewController中检查这一点
if self.modalPresentationStyle == .popover {
print("Popover presentation")
}
如果呈现的视图控制器包含在导航控制器中,则使用此
if self.navigationController?.modalPresentationStyle == .popover {
print("Popover presentation")
}
发布于 2019-03-26 23:34:46
使用presentedViewController的"UIModalPresentationStyle“来检测演示样式是全屏还是弹出式。
你可以在这里找到更多细节:https://developer.apple.com/documentation/uikit/uimodalpresentationstyle
https://stackoverflow.com/questions/55354899
复制相似问题