可能是以前记错了,总认为在ios6上使用了UINavigationController或者TabBarController会因为多了bar而影响子controller的view的frame大小。今天在xcode5.1上验证,无论ios6或者7,使用容器controller,产生了的bar都不会对子controller的view的frame产生影响。
我们看看一个简单例子:
首先,可以看出,frame高度是568,没有收到bar的影响。其次Under top bars和under bottom bars的属性没有选中,frame依旧是568,可见这2个属性调整的不是view的frame,而是view的坐标系统,而view在ios7上就是全屏!
再看看ios6上的:
可以看到ios6上,高度仅仅是没有status bar 的20高度,也就是说bar不会影响view的frame!view是在bar后面的!
TabBarController嵌套NavigationController也是一样的,做过实验了。