我正在尝试使用以下调用
为navigationController设置项目NSArray *items = [NSArray arrayWithObjects: shareButton, nil];
[self.navigationController.toolbar setItems:items animated:NO];
这对工具栏没有任何补充。
我可以使用
隐藏和显示工具栏[self.navigationController setToolbarHidden:NO];
但是不能让这些物品出现。
如何设置项目。 ?
更新
答案 0 :(得分:16)
工具栏是只读属性。您可以通过以下方式设置工具栏:
工具栏关联的自定义工具栏 与导航控制器。 (只读)
@属性(非原子,只读) UIToolbar *工具栏讨论这个 property包含对引用的引用 由...管理的内置工具栏 导航控制器。访问这个 工具栏仅供客户使用 想要提交一份行动表 从工具栏中。你不应该 直接修改UIToolbar对象。
管理此工具栏的内容 通过自定义视图完成 与此相关的控制器 导航控制器。对于每个视图 导航堆栈上的控制器, 您可以指定一组自定义工具栏 使用的项目 setToolbarItems:animated:方法 的UIViewController。
编辑:所以你应该这样做:
[self setToolbarItems:items animated:NO];
编辑:以下是添加右栏按钮项的方法:
- (void) addRightButton
{
UIButton *rightBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[rightBtn setImage:[UIImage imageNamed:@"mybutton.png"] forState:UIControlStateNormal];
rightBtn.frame = CGRectMake(0, 0, 70, 40 );
[rightBtn addTarget:self action:@selector(myButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *rightBarBtn = [[UIBarButtonItem alloc] initWithCustomView:rightBtn];
self.navigationItem.rightBarButtonItem = rightBarBtn;
}
编辑:要以编程方式创建灵活/固定空间项目,请使用:
- (id)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem target:(id)target action:(SEL)action
可设置的systemItem值包括UIBarButtonSystemItemFlexibleSpace和UIBarButtonSystemItemFixedSpace。查看UIBarButtonItem类的文档:
编辑:问题得到澄清。底部的工具栏与navigationItem或导航控制器无关,它只是一个UIToolbar。你需要在IB中完全设置它或在你的班级设置一个插座并在代码中设置/完成它。