UINavigationBar在iOS 7中神秘消失
我用Xcode 4启动了一个项目,今天我将我的Xcode更新为5。在iOS7模拟器中运行同一个项目揭示了一些有趣(也令人沮丧)的问题 因此,我的应用程序有一个侧边栏,用户可以点击,根据他们点击的按钮,我将使用以下代码实例化一个新的VCUINavigationBar在iOS 7中神秘消失,ios,objective-c,ios7,Ios,Objective C,Ios7,我用Xcode 4启动了一个项目,今天我将我的Xcode更新为5。在iOS7模拟器中运行同一个项目揭示了一些有趣(也令人沮丧)的问题 因此,我的应用程序有一个侧边栏,用户可以点击,根据他们点击的按钮,我将使用以下代码实例化一个新的VC YMGeneralInfoTableViewController *generalInfoTableVC = [self.storyboard instantiateViewControllerWithIdentifier:@"generalInfoTableVC
YMGeneralInfoTableViewController *generalInfoTableVC = [self.storyboard instantiateViewControllerWithIdentifier:@"generalInfoTableVC"];
[self.navigationController pushViewController:generalInfoTableVC animated:YES];
然后用下面的代码将这个新VC推到nav堆栈上
YMGeneralInfoTableViewController *generalInfoTableVC = [self.storyboard instantiateViewControllerWithIdentifier:@"generalInfoTableVC"];
[self.navigationController pushViewController:generalInfoTableVC animated:YES];
在iOS 6中,一切正常。然而,在iOS7中,导航条神奇地消失了
这是推新VC之前的屏幕截图
推完之后,这里是:
正如您所看到的,在内容的开始位置和状态栏之间存在一个间隙,即导航栏应该位于的位置
我还在我的iOS 6设备上再次测试了这段代码,在iOS 6设备上一切正常。所以我不确定这里发生了什么
此外,如果我尝试记录导航栏消失的控制器的导航栏/navigationItem,我会得到对导航栏的正确引用,这意味着它不是nil,只是没有显示
但是,方法
setHideNavigationBar:NO-Animated:NO
也没有将导航栏带回来。有人知道发生了什么吗?签出自动布局约束
我也尝试过使用iOS 6和iOS 7,我的导航栏显示。仍然签出Autolayout约束,我在没有Autolayout的情况下不签,顺便说一下,我已经找到了解决方案 这是因为在AppDelegate中,您可能已经为导航栏设置了一些外观更改 因此,我建议您首先检查设备操作系统,然后再为导航栏设置自定义外观
- (BOOL)isOS7
{
float currentVersion = 7.0;
if ([[[UIDevice currentDevice] systemVersion] floatValue] < currentVersion)
return NO;
return YES;
}
-(BOOL)isOS7
{
float currentVersion=7.0;
如果([[[UIDevice currentDevice]systemVersion]floatValue]
因此,如果返回“否”,那么只有您尽可能地使用这些屏幕截图应该被切断,还是直接来自模拟器?是的,对不起,我只捕获了模拟器的一部分,所以是的,它们应该被切断。哦,好的,我几乎看不到导航栏上的对比,想知道我还遗漏了什么。我现在明白了。是的,很抱歉。实际上,我找到了一个临时解决方案,它只涉及设置导航栏。半透明=否。但这也会导致其他问题,例如,我的自定义菜单图标没有显示。请尝试切换导航栏的半透明性。self.navigationController.navigationBar.translucent=否;//是的,我已经禁用了autolayout,但它仍然以这种方式运行。