【发布时间】:2016-08-03 18:15:19
【问题描述】:
我正在尝试展示一个 PopOver 视图控制器,特别是在 TextField 旁边显示一个小的过滤器屏幕。但是它显示为全屏视图控制器。 filters_button 是应该触发弹出窗口的按钮。有什么想法为什么会像普通 ViewController 一样显示全屏?
func showFilters(){
let tableViewController = UITableViewController()
tableViewController.modalPresentationStyle = UIModalPresentationStyle.Popover
tableViewController.preferredContentSize = CGSizeMake(20, 20)
presentViewController(tableViewController, animated: true, completion: nil)
let popoverPresentationController = tableViewController.popoverPresentationController
popoverPresentationController?.sourceView = filters_button
popoverPresentationController?.sourceRect = CGRectMake(0, 0, filters_button.frame.size.width, filters_button.frame.size.height)
}
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
return .None
}
注意:在我的班级顶部,我声明它符合“UIPopoverPresentationControllerDelegate”协议
【问题讨论】:
-
@Lu_ Apple 已弃用 iOS 8.3 中的操作表
-
也许尝试将行更改为
popoverPresentationController?.sourceView = self.view和popoverPresentationController?.sourceRect = filters_button.frame -
我改了这两个,结果一样,popOver全屏显示...
-
在 popoverPresentationController 行之后将 presentViewController 行移动到方法的末尾是否可行?
-
不...我试过只是为了确定,但这并没有改变任何东西。