8 ipad uipopovercontroller ios ios8
我UIPopoverController在iOS 8 iPad中使用imagepicker.Its在iOS 7中工作但在iOS 8中没有.弹出窗口没有显示并popoverControllerDidDismissPopover立即调用.请建议一个解决方案..这里的代码使用:
UIPopoverController *popVC= [[UIPopoverController alloc] initWithContentViewController:pickerController];
_pop = popVC;
_pop.delegate = self;
[_pop presentPopoverFromRect:attachBtnFrame inView:_sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];
Run Code Online (Sandbox Code Playgroud)
谢谢..
小智 22
终于找到了解决方案: 在主线程中显示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];
});
}
Run Code Online (Sandbox Code Playgroud)
将此方法放在appDelegate.m中
+(BOOL)isIOS8
{
NSString* version=[[UIDevice currentDevice] systemVersion];
if ([version integerValue]>=8.0)
{
return YES;
}
else
{
return NO;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当你想使用PopoverController时,只需通过上面的方法检查系统OS
if([AppDelegate isIOS8])
Run Code Online (Sandbox Code Playgroud)
比使用这个方法
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 ];
}
Run Code Online (Sandbox Code Playgroud)
这个方法非常适合我,它应该适合你...
| 归档时间: |
|
| 查看次数: |
5684 次 |
| 最近记录: |