UIPopoverController里面的UINavigationController - 在其他视图后面的iOS 7导航栏中

时间:2013-10-31 09:16:38

标签: ios ipad uinavigationcontroller uipopovercontroller

我在弹出窗口中包含了一个导航控制器。该视图包含我想部分覆盖的图像。在iOS6中是导航栏的后面,在ios7中恰恰相反。附上截图。 有谁知道为什么?enter image description here

3 个答案:

答案 0 :(得分:1)

使用自动布局约束:http://www.raywenderlich.com/50317/beginning-auto-layout-tutorial-in-ios-7-part-1

或试试这个(没有优雅的解决方案):

NSString *ver = [[UIDevice currentDevice] systemVersion];
float ver_float = [ver floatValue];

if (ver_float >= 7.0f)
{
   CGRect frame = self.myView.frame;
   frame.origin.y = self.navigationBar.frame.size.height;
   [self.myView setFrame:frame]
}

答案 1 :(得分:0)

如果您不需要半透明的导航栏,可以尝试navigationBar.isTranslucent = NO。

答案 2 :(得分:0)

在iOS 7中,默认情况下布局会扩展容器的边缘。这是edgesForExtendedLayout视图控制器属性的控制器。如果您希望布局从顶部与导航栏对齐开始,则需要通过设置self.edgesForExtendedLayout来禁用它。

例如:

- (id)init
{
    if ((self = [super init])) {

        // layout with top of view starting at bottom of navigation bar
        self.edgesForExtendedLayout = UIRectEdgeNone;

        // continue with init

    }
 }