我想知道这是否可以使用 Storyboard IB 实现:
self.navigationItem.leftBarButtonItems = @[barButton1, barButton2]
编辑:
目的是保留使用故事板的好处,如果可能的话,不使用任何行代码。
第二次编辑:
根据这个答案,我进行了实验,并发现可以将导航项的Title View属性链接到工具栏
但在我看来,它似乎像一个hack(我可能也想保留标题):
有更好的主意吗?
我想知道这是否可以使用 Storyboard IB 实现:
self.navigationItem.leftBarButtonItems = @[barButton1, barButton2]
编辑:
目的是保留使用故事板的好处,如果可能的话,不使用任何行代码。
第二次编辑:
根据这个答案,我进行了实验,并发现可以将导航项的Title View属性链接到工具栏
但在我看来,它似乎像一个hack(我可能也想保留标题):
有更好的主意吗?
有一种方法可以将视图添加到 navigationItem 中,然后向该视图添加所需的按钮或标签。
1 -> 在导航栏中拖放“Bar Button Item”,在最新版的Xcode中,您可以直接将多个项目放置在导航栏上,无论是左侧还是右侧。
UIBarButtonItem *btnShare = [[UIBarButtonItem alloc] initWithCustomView:self.backbtn];
UIBarButtonItem *btnRefresh = [[UIBarButtonItem alloc] initWithCustomView:self.testbutton2];
[self.navigationItem setLeftBarButtonItems:[NSArray arrayWithObjects:btnShare,btnRefresh, nil]];
如果你想从代码中添加它们,在Swift中可以这样做:
override func viewDidLoad() {
// ....
let ubRefresh = UIBarButtonItem.init(barButtonSystemItem: .Refresh, target: self, action: "refreshManually")
let ubMyIcon = UIBarButtonItem(image: UIImage(named: "MyIcon"), style: .Plain, target: self, action: "myAction")
self.navigationItem.setRightBarButtonItems([ubMyIcon, ubRefresh], animated: true)
}
UIToolbar
:UIToolbar *toolbar = [[UIToolbar alloc] init];
// ... set toolbars' frame, initialize buttons, etc;
[toolbar setItems:@[barButton1, barButton2] animated:NO];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:toolbar];
或者你可以使用setLeftBarButtonItems:animated:
和setRightBarButtonItems:animated:
希望能帮到你,祝好运!