iOS 7导航栏的uinvigationcontroller问题

时间:2013-09-15 14:59:39

标签: ios ios7

我已经介绍了UI在不同iOS版本上的外观。

这是我的代码:

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:contactsViewController];
[self.viewController presentModalViewController:navController animated:YES];

iOS 6

enter image description here

iOS 7

enter image description here

第一个问题是iOS 6中的状态栏我没有状态栏。第二个问题是透支两个观点。怎么解决?

3 个答案:

答案 0 :(得分:4)

您可能希望使用可调整大小的图片:

[image resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0) resizingMode:UIImageResizingModeStretch];

或者,正如 AliSoftware 建议的那样,将扩展布局边缘设置为UIRectEdgeNone(请务必检查是否支持edgesForExtendedLayout(如果与app绑定,您的应用会崩溃此属性在iOS 6.x设备上运行):

if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) {
    self.edgesForExtendedLayout = UIRectEdgeNone;
}

答案 1 :(得分:2)

我强烈邀请您阅读Apple的“UI过渡指南”,该指南解释了iOS6和iOS7之间的所有这些差异以及如何相应地调整您的代码。

即使在iOS7中,如果您希望视图仍然位于statusBar下,最简单的方法是在UIViewController中设置self.edgesForExtendedLayout = UIRectEdgeNone的{​​{1}}。

答案 2 :(得分:1)

您可以通过编写此方法隐藏现有viewcontroller中的状态栏

- (BOOL)prefersStatusBarHidden {
    return YES;
}