UIPopoverController不在iPad的iOS 8中呈现

我在iOS 8 iPad中使用UIPopoverController imagepicker它在iOS 7中工作,但不在iOS 8中。popup窗口不显示, popoverControllerDidDismissPopover立即调用。请提出解决scheme..在这里使用的代码:

 UIPopoverController *popVC= [[UIPopoverController alloc] initWithContentViewController:pickerController]; _pop = popVC; _pop.delegate = self; [_pop presentPopoverFromRect:attachBtnFrame inView:_sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO]; 

谢谢..

最后find解决办法:在主线程中展示Popover如下。

 if([[[UIDevice currentDevice] systemVersion] floatValue]>=8.0) { dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [_pop presentPopoverFromRect:attachBtnFrame inView:_sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:NO]; }); } 

把这个方法放在你的appDelegate.m中

 +(BOOL)isIOS8 { NSString* version=[[UIDevice currentDevice] systemVersion]; if ([version integerValue]>=8.0) { return YES; } else { return NO; } } 

现在,当你想使用PopoverController只是通过上面的方法检查系统操作系统

 if([AppDelegate isIOS8]) 

比使用这个方法

 if([AppDelegate isIOS8]) { dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{[self.popover presentPopoverFromRect:popoverRect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];}); } else { [self.popover presentPopoverFromRect:popoverRect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES ]; } 

这种方法对我很好,它应该为你工作…