在iPhone和iPad上,我需要在导航栏的右侧显示两个按钮。我正在使用以下代码段进行此操作:
UIToolbar *rightBarButtons = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 92, 44.01)];
UIBarButtonItem *send = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction
target:self
action:@selector(send)];
[send setStyle:UIBarButtonItemStyleBordered];
UIBarButtonItem *add = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self
action:@selector(addRecipe:)];
[add setStyle:UIBarButtonItemStyleBordered];
NSArray *buttons = [[NSArray alloc] initWithObjects:send,add,nil];
[send release];
[add release];
[rightBarButtons setItems:buttons];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:rightBarButtons];
[buttons release];
[rightBarButtons release];
在iPhone上,颜色很好,而在iPad上的横向模式下它很好,因为它们是灰色的。但是在纵向模式下,视图显示在具有深黑/蓝色的弹出控制器内。我的按钮和工具栏显示为默认灰色。
如何使工具栏按钮匹配?如果您不使用上面的hack并且只是正常显示一个按钮,则会处理颜色更改,我想我只需要手动实现颜色更改,问题是,我似乎无法让颜色发生变化。
答案 0 :(得分:0)
这似乎是一个名为barStyle的属性,而不是我以前认为的tintColor。最简单的解决方案是从其他地方复制条形样式:
[rightBarButtons setBarStyle:self.navigationController.navigationBar.barStyle];
当视图改变时,确保样式保持正确是相当微不足道的。虽然我不得不说我非常喜欢旋转后给出的银色导航条上的深蓝色黑色按钮。