在UIDocumentPickerExtensionViewController子类中呈现视图控制器会与系统导航栏重叠。只有在使用 Xcode 6.3 (iOS 8.3 SDK) 编译时才会出现此问题。
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:myVC];
[self presentViewController:navController animated:NO completion:nil];
任何指针都会有所帮助。
尝试使用 (in viewDidLoad()):
self.edgesForExtendedLayout = UIRectEdgeNone;
这为我们解决了问题。
尝试将其放在目标视图中控制器视图DidLoad
[[self navigationController] setNavigationBarHidden:YES animated:NO];
[[self navigationController] setNavigationBarHidden:NO animated:NO];
我希望这就是你想要的。
这是苹果在提交问题后的回复。
这是故意行为。在 iOS 8.3 上,我们公开了导航控制器供您推送,因此您无需提供自己的导航控制器。尝试将代码更改为
UIViewController* testVC = [[UIViewController alloc] init];
testVC.view.backgroundColor = [UIColor greenColor];
if(self.navigationController)
{
[self.navigationController pushViewController:testVC animated:YES];
}
else
{
UINavigationController* nc = [[UINavigationController alloc] initWithRootViewController:testVC];
[self presentViewController:nc animated:NO completion:nil];
}
它应该同时支持 iOS 8.3 和以前的版本。