带有2个以上按钮的ios6 UINavigationBar

时间:2012-10-01 12:09:44

标签: ios button user-interface ios6 navigationbar

在我的应用程序中我有一个带有3个按钮的uinavigationbar,但我用于ios5的代码似乎不再适用于ios6。 您可以在我的custum视图下面看到一个颜色错误的rect,右侧有两个按钮。

继承了我使用的代码,我发现它在stackoverflow上的某个地方:

UIToolbar *tools = [[[UIToolbar alloc]
                     initWithFrame:CGRectMake(0.0f, 0.0f, 110.0f, 44.01f)] autorelease]; // 44.01 shifts it up 1px for some reason
tools.clearsContextBeforeDrawing = NO;
tools.clipsToBounds = NO;
tools.translucent = self.headerbar.translucent;
tools.barStyle = self.headerbar.barStyle;  
tools.backgroundColor = self.headerbar.backgroundColor;
tools.tintColor = self.headerbar.tintColor;

NSMutableArray *buttons = [[NSMutableArray alloc] initWithCapacity:3];

// Create a standard refresh button.
UIBarButtonItem *bi = [[UIBarButtonItem alloc] initWithTitle:@"heute" style:UIBarButtonItemStylePlain target:self action:@selector(showThisWeek)];
bi.style = UIBarButtonItemStyleBordered;
bi.width = 0;
[buttons addObject:bi];
//[bi release];

// Create a spacer.
bi = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:@selector(showThisWeek)];
[buttons addObject:bi];
//[bi release];

// Add profile button.
bi = [[UIBarButtonItem alloc] initWithTitle:@"vor" style:UIBarButtonItemStylePlain target:self action:@selector(showNext)];
bi.style = UIBarButtonItemStyleBordered;
[buttons addObject:bi];
//[bi release];

// Add buttons to toolbar and toolbar to nav bar.
[tools setItems:buttons animated:NO];
[buttons release];
UIBarButtonItem *twoButtons = [[UIBarButtonItem alloc] initWithCustomView:tools];
//[tools release];
header.rightBarButtonItem = twoButtons;
[header.leftBarButtonItem setAction:@selector(showPrevious)];

有人会暗示我找到一个更优雅的解决方案,可以在ios5和ios6上正常工作吗?

欢呼声 卢卡斯

2 个答案:

答案 0 :(得分:1)

您是否尝试过leftBarButtonItems和rightBarButtonItems?您可以使用此选项在左侧和右侧导航栏中添加按钮阵列。

如果您使用此功能,则不需要UIToolbar及其子视图。

答案 1 :(得分:0)

你试过bar.style = -1吗?