使用Xcode 10.1和Swift 4.2.1,iOS 12
我在导航控制器中嵌入了一个表格视图。右上角有一个条形按钮和一个从该按钮到导航控制器的segue(弹出窗口),该导航控制器具有静态表格视图,此处的单元格具有到其他表格视图的进一步segue。
在iPhone上,静态表格视图以全屏模式显示;在iPad上,它是一个弹出窗口,到目前为止还可以。 我已经在情节提要中设置了所有内容,不知道这可能是原因,但是现在我正在努力查看视图是弹出框还是全屏模式。
我尝试过:
print("\(presentationController)")
if presentationController is UIPopoverPresentationController {
// Do something
}
但这不起作用-> print("\(presentationController)")
在iPhone和iPad上给了我Optional(<_UIFullscreenPresentationController: 0x7fd00ad45770>)
。
我也尝试过:
if popoverPresentationController != nil {
print("popover")
}
但是如果在iPhone或iPad上启动,则会打印出弹出窗口。
我在这里做错什么了吗?还是我错过了什么?
答案 0 :(得分:0)
使用presentedViewController的“ UIModalPresentationStyle”来检测呈现样式是全屏显示还是弹出窗口。
您可以在此处找到更多详细信息:https://developer.apple.com/documentation/uikit/uimodalpresentationstyle
答案 1 :(得分:0)
当前我正在使用此
if (popoverPresentationController?.arrowDirection != UIPopoverArrowDirection.unknown) {
tableView.sectionHeaderHeight = CGFloat.leastNormalMagnitude
tableView.sectionFooterHeight = CGFloat.leastNormalMagnitude
}
这很容易,并且有效。如果有人真的有可能发现“如果是弹出窗口”,非常欢迎您在此处发布。