我使用Xcode 4开始了一个项目,今天我将我的Xcode更新为5.在iOS7模拟器中运行相同的项目会发现一些有趣(也令人沮丧)的问题。
所以我的应用程序有一个用户可以点击的侧边栏,根据他们点击的按钮,我将使用此代码实例化一个新的VC
YMGeneralInfoTableViewController *generalInfoTableVC = [self.storyboard instantiateViewControllerWithIdentifier:@"generalInfoTableVC"];
然后使用此代码将此新VC推送到导航堆栈
[self.navigationController pushViewController:generalInfoTableVC animated:YES];
在iOS 6中一切正常。但是,在iOS7中,导航栏神奇地消失了。
这是推送新VC之前的屏幕截图
推送之后:
正如您所看到的,内容开始的位置与statusBar之间存在差距,位于navBar的位置。
我还在iOS 6设备上再次测试了这段代码,iOS 6设备上的一切都还可以。所以我不确定这里发生了什么。
此外,如果我尝试记录导航栏消失的控制器的navBar / navigationItem,我会得到对navBar的正确引用,这意味着它不是nil,而只是不显示。
然而,方法setHideNavigationBar:NO Animated:NO
也没有带回navBar。有谁知道发生了什么事?
答案 0 :(得分:1)
顺便说一句,我找到了解决方案。
这是因为在AppDelegate中,您可能已经为导航栏设置了一些外观更改。
所以我建议您在为导航栏设置自定义外观之前先检查设备操作系统?
- (BOOL)isOS7
{
float currentVersion = 7.0;
if ([[[UIDevice currentDevice] systemVersion] floatValue] < currentVersion)
return NO;
return YES;
}
因此,如果返回“NO”,那么只有你可以用于
的任何可能的事情答案 1 :(得分:0)
结帐Autolayout约束,
我已经尝试使用iOS 6和iOS 7,我的导航栏正在显示。仍然签出Autolayout约束,我没有自动布局