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 ]; }
这种方法对我很好,它应该为你工作…