Popover适用于IOS 7.1,但在IOS 8.3中为空
我的popover在IOS 7.1中正常工作,但在IOS 8.3中显示为空Popover适用于IOS 7.1,但在IOS 8.3中为空,ios,ios8,uipopovercontroller,ios7.1,uipopover,Ios,Ios8,Uipopovercontroller,Ios7.1,Uipopover,我的popover在IOS 7.1中正常工作,但在IOS 8.3中显示为空 self.view.endEditing(true); let timeViewStoryboard : UIStoryboard?; if UI_USER_INTERFACE_IDIOM() == .Pad { //IF IPAD NSLog("PAD"); timeViewStoryboard = UIStoryboard(name: "Stor
self.view.endEditing(true);
let timeViewStoryboard : UIStoryboard?;
if UI_USER_INTERFACE_IDIOM() == .Pad {
//IF IPAD
NSLog("PAD");
timeViewStoryboard = UIStoryboard(name: "StoryboardiPad", bundle: nil);
}
else {
//IF IPHONE
timeViewStoryboard = UIStoryboard(name: "Main", bundle: nil);
}
let timePickerViewController : TimePickerViewController = timeViewStoryboard!.instantiateViewControllerWithIdentifier("TimePickerViewController_ID") as! TimePickerViewController;
if UI_USER_INTERFACE_IDIOM() == .Pad {
//Delegating
//timePickerViewController.delegate = self;
if (self.view.window != nil) {
timePickerViewController.modalPresentationStyle = UIModalPresentationStyle.Popover
let popover = UIPopoverController(contentViewController: timePickerViewController);
timePickerViewController.parentPopover = popover;
let height = self.view.frame.height;
let width = self.view.frame.width;
popover.presentPopoverFromRect(CGRectMake(width/2, 44, 1, 1), inView: self.view, permittedArrowDirections: UIPopoverArrowDirection.Up, animated: true);
}
}
这是我用来显示popover的
timePickerViewController.modalPresentationStyle = .Popover;
timePickerViewController.preferredContentSize = timePickerViewController.view.frame.size;
let popoverTimePickerViewController = timePickerViewController.popoverPresentationController;
popoverTimePickerViewController?.permittedArrowDirections = .Any;
popoverTimePickerViewController?.delegate = self;
popoverTimePickerViewController?.sourceView = self.view;
let height = self.view.frame.height;
let width = self.view.frame.width;
popoverTimePickerViewController?.sourceRect = CGRectMake(width - 93, 35, 1, 1);
presentViewController(timePickerViewController, animated: true, completion: nil);
这是iOS 7.1上的外观:
这是iOS 8.3上的外观:
谢谢你的帮助
编辑3:我现在发现它肯定不是我的代码。在直接从故事板按钮开始的情况下,也不会显示任何内容
编辑2:我也尝试过使用不同的方法创建popover
timePickerViewController.modalPresentationStyle = .Popover;
timePickerViewController.preferredContentSize = timePickerViewController.view.frame.size;
let popoverTimePickerViewController = timePickerViewController.popoverPresentationController;
popoverTimePickerViewController?.permittedArrowDirections = .Any;
popoverTimePickerViewController?.delegate = self;
popoverTimePickerViewController?.sourceView = self.view;
let height = self.view.frame.height;
let width = self.view.frame.width;
popoverTimePickerViewController?.sourceRect = CGRectMake(width - 93, 35, 1, 1);
presentViewController(timePickerViewController, animated: true, completion: nil);
但是这种方法也不起作用
但是,我发现对于UITableViewController而不是UIViewController,popover不会显示为空。此时将显示UITableViewController的单元格
编辑:我添加了一些图片,以更好地显示我的问题。如果有人需要更多的信息来解决我的问题,请询问,我会乐意提供尽可能多的信息。谢谢 TimePickerViewController上的.parentPopover属性是什么?稍后,我通过给视图控制器一个对其所在的popover的引用,利用它来关闭popover。我这样做的原因是因为创建popover的新方法只适用于ios8,而不适用于ios7。实际上,我发现了一些新的内容,将发布一个编辑。TimePickerViewController上的.parentPopover属性是什么?稍后,我将通过向视图控制器提供对其所在的popover的引用来使用它来取消popover。我这样做的原因是因为创建popover的新方法只适用于ios8,而不适用于ios7。我实际上发现了一些新的东西,并将发布一个编辑。