IPad导航控制器工具栏位置

时间:2013-12-10 10:09:22

标签: ios objective-c ipad uinavigationcontroller uitoolbar

我在UIViewController内有一个UINavigationViewController。我使用navigationControllertoolbar进行某些操作。

Before

在第一次设备旋转之前没有问题。工具栏离开屏幕框后。

After

并且没有什么可做的,即使是其他设备轮换也无法解决这个问题。 该问题仅在IPad ios v.6上发生。 代码非常简单:

- (void)createToolbar{
   UIImage *toolbarBack = [[UIImage imageNamed:@"navbar"] resizableImageWithCapInsets:UIEdgeInsetsMake(2, 2, 2, 2)];
   [self.navigationController.toolbar setBackgroundImage:toolbarBack forToolbarPosition:UIBarPositionBottom barMetrics:UIBarMetricsDefault];
   self.navigationController.toolbar.delegate = self;
   //...
   self.toolbarItems = @[item1, space, item2, space, item3, space, item4];
}

- (void)showToolbar{
   [self.navigationController setToolbarHidden:YES animated:NO];
}

#pragma mark - toolbar delegate methods

- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar{
   return UIBarPositionBottom;
}

更新 我发现在旋转之前navigationController.view.height == 1004并且在旋转之后它增加了20(1024)。是一些状态栏问题吗?

1 个答案:

答案 0 :(得分:2)

将工具栏委托设置到视图控制器并实现方法:

- (UIBarPosition)positionForBar:(id <UIBarPositioning>)bar {
    return UIBarPositionBottom;
}

如果使用情节提要,则可以在屏幕底部和工具栏之间创建约束。