如何在UINavigationBar的右侧设置两个按钮?

时间:2015-07-24 13:58:37

标签: ios objective-c uinavigationbar uibarbuttonitem

我制作了一个标准的Master-Detail应用程序(使用Xcode模板)。我修改了它,现在当我单击第一个表视图的一个单元格时,应用程序显示另一个表视图(这是详细信息,因为它被单击的单元格值过滤)。 在标准表视图中,我会在UINavigationBar上出现这种情况:

Edit Table title + (for adding new items)

我也需要UINavigationBar的默认后退按钮。有可能并允许这样做吗?从图形上看,它将是这样的:

< Back Table title Edit +

您是否知道在顶部栏中显示3按钮(后退 - 编辑 - 添加)和标题的任何其他布局?

抱歉不发布图片,提前致谢。

P.S。我想知道是否可以使用内置后退按钮和编辑按钮来执行我要求的操作(我的意思是系统自动将其放入导航栏)。

3 个答案:

答案 0 :(得分:6)

您需要设置正确的条形项目数组以设置右侧的条形按钮...

以下是设置栏按钮项目右侧的2个自定义按钮的代码...您可以使用默认按钮代替此

UIButton *btnabout =  [UIButton buttonWithType:UIButtonTypeCustom];
btnabout.frame = CGRectMake(0,8,30,30);
[btnabout setBackgroundImage:[UIImage imageNamed:@"about.png"] forState:UIControlStateNormal];
[btnabout addTarget:self action:@selector(callselector) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *about = [[UIBarButtonItem alloc] initWithCustomView:btnabout];
about.tintColor = [UIColor whiteColor];


UIButton *btnsetting =  [UIButton buttonWithType:UIButtonTypeCustom];
btnsetting.frame = CGRectMake(0,8,30,30);
[btnsetting setBackgroundImage:[UIImage imageNamed:@"setting"] forState:UIControlStateNormal];
[btnsetting addTarget:self action:@selector(SettingData) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *setting = [[UIBarButtonItem alloc] initWithCustomView:btnsetting];
setting.tintColor = [UIColor whiteColor];

self.navigationItem.rightBarButtonItems =[NSArray arrayWithObjects:setting, about, nil];
// --- or if you want left side ----
//  self.navigationItem.leftBarButtonItems =[NSArray arrayWithObjects:setting, about, nil];

答案 1 :(得分:0)

[self.navigationItem setRightBarButtonItems:@[/*array of UIBarButtonItem*/] animated:NO]

Apple doc

答案 2 :(得分:0)

对于在swift中遇到这个问题的人来说,这是正确答案:

let barButton_array: [UIBarButtonItem] = [Button1, Button2]
navigationItem.setRightBarButtonItems(barButton_array, animated: false)