是否可以在屏幕上显示UIPopovercontroller后移动它? 我在我的应用程序中有一个小视图,可以稍微移动,我希望UIPopoverController随身携带,而不必每次移动时重新呈现UIPopoverController。这可能吗?
答案 0 :(得分:1)
从iOS 9开始,“不推荐使用UIPopoverController。现在将Popovers实现为UIViewController演示文稿。使用UIModalPresentationPopover和UIPopoverPresentationController的模式演示样式。”
使用以下内容呈现弹出窗口。您可以更改sourceRect和sourceView的值,但这不是API行为。
DetailViewController *detailVC = self.detailViewController;
detailVC.preferredContentSize = CGSizeMake(420, 92);
detailVC.modalPresentationStyle = UIModalPresentationPopover;
UIPopoverPresentationController *presController = detailVC.popoverPresentationController;
if (presController) {
presController.delegate = detailVC;
presController.barButtonItem = self.detailButton;
presController.sourceRect = self.view.frame;
presController.sourceView = self.view;
presController.permittedArrowDirections = UIPopoverArrowDirectionAny;
}
[self presentViewController: detailVC animated:YES completion:^{
}];
相反,我建议保留对弹出窗口中显示的视图控制器的引用,忽略弹出窗口并重新呈现。
DetailViewController *detailVC = self.detailViewController;
[self dismissViewControllerAnimated:NO completion:^{
UIPopoverPresentationController *presController = detailVC.popoverPresentationController;
if (presController) {
presController.delegate = detailVC;
presController.barButtonItem = self.detailButton;
presController.sourceRect = self.view.frame; //Update frame
presController.sourceView = self.view;
presController.permittedArrowDirections = UIPopoverArrowDirectionAny;
}
[self presentViewController: detailVC animated:NO completion:^{
}];
}];
答案 1 :(得分:1)
您可以重新调用presentPopoverFromRect。
请参阅http://developer.apple.com/library/ios/#qa/qa1694/_index.html
答案 2 :(得分:0)
不,你不能。这不是方法。
pover presentPopoverFromRect:
在评论中提到,但请注意
本
如果没有重新绘制,你就无法代表。
答案 3 :(得分:0)
您可以跟踪屏幕上的用户触摸,并使用presentPopoverFromRect:
重新显示弹出框。