簡體   English   中英

iOS 8中的UIPopoverController

[英]UIPopoverController in iOS 8

所有人都說UIPopoverController在iOS 8上使用。

但是,如果我在iPhone模擬器中測試我的應用程序,它就會崩潰並顯示日志:

由於未捕獲的異常'NSInvalidArgumentException'而終止應用程序,原因:'-在未在UIUserInterfaceIdiomPad下運行時調用了[-[UIPopoverController initWithContentViewController:]。

這段代碼可以在iPad模擬器上正常工作。

我的Development Target設定為8.4

UIViewController* viewController = [[UIViewController alloc] initWithNibName:@"StyleMenu" bundle:nil];
    self.stylePopover = [[UIPopoverController alloc] initWithContentViewController:viewController];
    self.stylePopover.popoverContentSize = CGSizeMake(250,200);
    [self.stylePopover presentPopoverFromBarButtonItem:styleBarButton
                               permittedArrowDirections:UIPopoverArrowDirectionUp
                                               animated:YES];

任何幫助,將不勝感激。

UIPopoverController在iPhone上不可用。 使用您的viewController的新popoverPresentationController屬性代替

https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIPopoverPresentationController_class/index.html

MYViewController * myViewController = [[MYViewController alloc] init];
myViewController.modalPresentationStyle = UIModalPresentationPopover;
myViewController.popoverPresentationController.sourceView = button;
myViewController.popoverPresentationController.sourceRect = button.bounds;
[self presentViewController: myViewController animated: YES completion: nil];

是的,可以從iOS8開始。 我已經給出了類似問題的答案,甚至實現了一個有用的類來與iPhone上的彈出窗口配合使用,甚至在其中放置了一些自定義元素,例如UITableViewWKWebView ,您都將其命名。
您可以在這里查看我的答案並鏈接到課程: https : //stackoverflow.com/a/30418212/2924920

不幸的是,根據Apple文檔,UIPopoverController是iPad專用的

Popover控制器專用於iPad設備。 嘗試在其他設備上創建一個會導致異常。

這個問題也可能重復嗎? iPhone的UIPopoverController無法正常工作?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM