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

问题描述 投票:0回答:3

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

Edit Table title + (for adding new items)

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

< Back Table title Edit +

你知道任何其他布局在顶部栏中显示3按钮(后退 - 编辑 - 添加)加上标题吗?

很抱歉没有发布图片,提前致谢。

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

ios objective-c uinavigationbar uibarbuttonitem
3个回答
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];

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

Apple doc


0
投票

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

let barButton_array: [UIBarButtonItem] = [Button1, Button2]
navigationItem.setRightBarButtonItems(barButton_array, animated: false)
© www.soinside.com 2019 - 2024. All rights reserved.