ios - iPad 导航 Controller 工具栏位置

标签 ios objective-c ipad uinavigationcontroller uitoolbar

我在 UINavigationViewController 内部有一个 UIViewController。我使用 navigationController.toolbar 执行某些操作。

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)。是状态栏的问题吗?

最佳答案

为 View Controller 设置工具栏委托(delegate)并实现方法:

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

如果您使用 Storyboard,您可以在屏幕底部和工具栏之间创建约束。

关于ios - iPad 导航 Controller 工具栏位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20491496/

相关文章:

ios - WKWebView reload() 无法刷新当前页面

ios - 管理多个与 git 共享代码的 Xcode 项目

iphone - 应用因未使用 HTTP 实时流协议(protocol)而被拒绝

iphone - 在 UIImagePicker 中禁用旋转

iphone - UISlider RGB 颜色更改并保存在 NSUserDefault

iphone - objective-c 获取一个类的所有属性(反射)

ios - 针对不同目标的定位和非定位

iphone - 应用程序因 FMDB 执行更新查询而卡住

ios - 添加到 UIButton 的 UIButton 不响应选择器

iphone - iOS 应用程序 sqlite3 上的离线缓存损坏