UIPopoverController no se presenta en iPad iOS 8
ios8 (2)
Estoy usando UIPopoverController
en iOS 8 iPad para imagepicker
Está trabajando en iOS 7 pero no en iOS 8. El popover no se muestra y se llama inmediatamente a popoverControllerDidDismissPopover
Sugiera una solución. Aquí el código está usando:
UIPopoverController *popVC= [[UIPopoverController alloc] initWithContentViewController:pickerController];
_pop = popVC;
_pop.delegate = self;
[_pop presentPopoverFromRect:attachBtnFrame inView:_sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];
Gracias..
Pon este método en tu appDelegate.m
+(BOOL)isIOS8
{
NSString* version=[[UIDevice currentDevice] systemVersion];
if ([version integerValue]>=8.0)
{
return YES;
}
else
{
return NO;
}
}
ahora, cuando quiera usar PopoverController, simplemente compruebe el sistema operativo del sistema por el método anterior, como
if([AppDelegate isIOS8])
que usar este método
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 ];
}
este método me funciona muy bien y debería funcionar para usted ...
Finalmente encontré la solución: Presente el Popover en el hilo principal como se muestra a continuación.
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];
});
}