在基类ViewController加方法
- (void) viewDidLayoutSubviews { if ([UIDevice currentDevice].systemVersion.floatValue>=7.0f) { CGRect viewBounds = self.view.bounds; CGFloat topBarOffset = self.topLayoutGuide.length; viewBounds.origin.y = topBarOffset * -1; self.view.bounds = viewBounds; } }
http://roadfiresoftware.com/2013/09/developing-for-ios-7-and-supporting-ios-6/
NavigationBar与UIViewController 重叠的问题
后来发现IOS7的视图有个边缘延伸的属性:edgesForExtendedLayout,
其默认值是UIExtendedEdgeAll。
只要将其改成UIExtendedEdgeNone即可,要注意的是在IOS7以下版本会出现bug。
所以在UIViewController 的viewDidLoad里加上下面代码就完美解决了这个问题
其他相关知识
Redesign Your App for iOS 7 之 页面布局
ios-7-uinavigationbar-background-image-hides-title-view
https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/Bars.html
--before something tips