簡體   English   中英

UIPopoverController在iOS 8中顯示為modalViewController

[英]UIPopoverController displayed as modalViewController in iOS 8

我遇到了一個非常令人沮喪的問題。 我不知道這是iOS8的錯誤還是其他原因。

我正在從筆尖加載視圖,如下所示:

界面構建器中的彈出視圖

這是我的代碼:

UIViewController *popoverViewController = [[UIViewController alloc] init];
[popoverViewController setView:poppverViewFromNib];

_popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverViewController];
[_popverController presentPopoverFromRect:CGRectMake(100, 100, 10, 10) inView:[self view] permittedArrowDirections:UIPopverArrowDirectionAny animated:YES];

iOS模擬器以及真實設備都以模態方式顯示viewController,就像您在此處看到的那樣:

在設備上演示

編輯

根據評論中的要求,我告訴您使用UIPopoverController時的期望:我期望使用UIPopover,而不是modalViewController。

所以在這里,我對所有這些人的疑問如何得到:為什么我的UIPopoverController不顯示為彈出窗口,而是顯示為modalViewController? 我該如何解決?

閱讀文檔。 Popover演示文稿僅適用於水平常規尺寸的班級。 目前,這僅在iPad上。 iPhone上的Popover演示文稿將始終作為全屏模式演示文稿執行。 這里

您很幸運,iOS8不會崩潰,因為iOS7及更低版本,如果在電話慣用語上使用UIPopoverController ,您的應用程序將崩潰。 UIPopoverController被棄用iOS8上有利於酥料餅模態演示。 這就是為什么您的應用程序不會崩潰的原因。

您可以為UIPopoverController保留與iOS 7相同的代碼

只需設置ViewController.preferredContentSize = CGSizeMake(300,290); 它會工作。

其他解決方案iOS 8具有一個名為UIPopoverPresentationController的新PopOverController。

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UINavigationController *navController = [storyboard instantiateViewControllerWithIdentifier:@"Terms_NC"];

navController.preferredContentSize = CGSizeMake(300, 290);

// Present the view controller using the popover style.
navController.modalPresentationStyle = UIModalPresentationPopover;
[self presentViewController:navController animated: YES completion: nil];



// Get the popover presentation controller and configure it.
UIPopoverPresentationController *presentationController =
[navController popoverPresentationController];
presentationController.permittedArrowDirections =0;
presentationController.sourceView = self.view;
presentationController.sourceRect = CGRectMake(100, 100, 300, 340);

暫無
暫無

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

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