我正在尝试UIPopoverPresentationController在我的iPhone应用程序中实现新功能(使用Objective C).我想要的是一个简单的popover,其中包含一个从启动按钮发出的tableview.
- 编辑 -
这是我的修订代码,改编自文档中的研究,SO,以及下面评论中的输入:
- (IBAction)selectCategoryBtn:(UIButton *)sender
{
[self performSegueWithIdentifier:@"CatSelectSegue" sender:self.selCatButton];
}
-(void) prepareForSegue:(UIStoryboardSegue *) segue Sender:(id) sender
{
if (sender == self.selCatButton)
{
if ([segue.identifier isEqualToString:@"CatSelectSegue"])
{
UIPopoverPresentationController *controller = segue.destinationViewController;
controller.delegate = self;
controller.sourceView = self.selCatButton;
controller.sourceRect = self.selCatButton.frame;
}
}
}
-(UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller
{
return UIModalPresentationNone;
Run Code Online (Sandbox Code Playgroud)
这是我的故事板连接:

然而,这只是以模态方式呈现一个桌面视图,从底部上升并消耗整个屏幕.
我用谷歌搜索了,看起来都是如此,但看起来我并不是唯一一个被我希望解决iPhone烦恼问题所迷惑的人.
任何人都可以看到我的代码中的故障或指导我一个明确的教程?我看过了,但也许API是如此新的没有人能够掌握它.
谢谢!
第二次编辑:
以下是上述代码的结果.我减少了视图控制器中的tableview的大小,我希望将其作为弹出窗口呈现.我把背景涂成灰色,只是为了澄清出现的是什么,而不是弹出窗口.

我正在尝试使用以下代码创建一个弹出菜单:
import UIKit
class BeobachtungViewController: UIViewController, UIPopoverPresentationControllerDelegate {
@IBAction func addClicked(_ sender: AnyObject) {
// get a reference to the view controller for the popover
let popController = UIStoryboard(name: "Personenakte", bundle: nil).instantiateViewController(withIdentifier: "popoverId")
// set the presentation style
popController.modalPresentationStyle = UIModalPresentationStyle.popover
// set up the popover presentation controller
popController.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.up
popController.popoverPresentationController?.delegate = self
popController.popoverPresentationController?.sourceView = sender as! UIView // button
popController.popoverPresentationController?.sourceRect = sender.bounds
// present the popover
self.present(popController, animated: true, completion: nil)
}
// UIPopoverPresentationControllerDelegate method
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) …Run Code Online (Sandbox Code Playgroud) 有没有办法检测当前视图外的任何水龙头?我试图用hitTest方法实现某些功能但未成功,但我不确定是否理解它.