在Storyboard中为导航栏添加多个按钮

24

我想知道这是否可以使用 Storyboard IB 实现:

self.navigationItem.leftBarButtonItems = @[barButton1, barButton2]

编辑:

目的是保留使用故事板的好处,如果可能的话,不使用任何行代码

第二次编辑:

根据这个答案,我进行了实验,并发现可以将导航项的Title View属性链接到工具栏 enter image description here

但在我看来,它似乎像一个hack(我可能也想保留标题):

enter image description here

有更好的主意吗?


1
我尝试过,但只对一个按钮有效。 - user623396
1
请访问此链接https://dev59.com/nGkw5IYBdhLWcg3wbqAS。 - LML
4
目前看来,这似乎是最佳解决方案:https://dev59.com/nGkw5IYBdhLWcg3wbqAS#20419513 - user623396
7个回答

9

有一种方法可以将视图添加到 navigationItem 中,然后向该视图添加所需的按钮或标签。

输入图像描述

输入图像描述


2

1 -> 在导航栏中拖放“Bar Button Item”,在最新版的Xcode中,您可以直接将多个项目放置在导航栏上,无论是左侧还是右侧。

例如,请参见此处


2
您可以使用以下代码:
UIBarButtonItem *btnShare = [[UIBarButtonItem alloc] initWithCustomView:self.backbtn];
UIBarButtonItem *btnRefresh = [[UIBarButtonItem alloc] initWithCustomView:self.testbutton2];   
[self.navigationItem setLeftBarButtonItems:[NSArray arrayWithObjects:btnShare,btnRefresh, nil]];

0
您可以在Storyboard中创建自己的按钮,按照您的喜好进行样式编辑,然后创建它们的outlets,并将它们作为顶级对象添加。最后,在viewDidLoad中使用[navigationItem setLeftBarButtonItems:]和[navigationItem setRightBarButtonItems:]将它们添加到运行时。希望这能帮到您 :)

0
我建议您在工具栏上添加多个按钮。在导航栏上添加多个按钮不是一个好主意。如果您想使用Storyboard在工具栏上添加多个按钮,这个视频链接可能会帮助您制作一个带有多个按钮的可滚动工具栏。 https://www.youtube.com/watch?v=4nYM8EfTpRw

我不认为这是一个坏主意,苹果在他们自己的应用商店应用程序中也这样做。 - user623396
@user623396 是的,因为苹果鼓励使用故事板。 - Abhay Singh Naurang

0

如果你想从代码中添加它们,在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)

}

0
您可以创建一个包含所有按钮的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:

希望能帮到你,祝好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接