【问题标题】:Add multiple buttons to navigation bar in storyboard在情节提要的导航栏中添加多个按钮
【发布时间】:2014-03-20 10:35:10
【问题描述】:

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

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

已编辑:

目的是保留使用情节提要的好处,如果可能不使用任何代码行

编辑 #2:

基于this answer我进行了实验,发现可以将导航项的标题视图属性链接到工具栏

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

有更好的主意吗?

【问题讨论】:

标签: ios storyboard


【解决方案1】:

有一种方法可以将视图添加到 navigationItem。 比在视图中添加所需的按钮或标签。

【讨论】:

    【解决方案2】:

    可以使用以下代码:

    UIBarButtonItem *btnShare = [[UIBarButtonItem alloc] initWithCustomView:self.backbtn];
    UIBarButtonItem *btnRefresh = [[UIBarButtonItem alloc] initWithCustomView:self.testbutton2];   
    [self.navigationItem setLeftBarButtonItems:[NSArray arrayWithObjects:btnShare,btnRefresh, nil]];
    

    【讨论】:

      【解决方案3】:

      1 -> 在导航栏中拖放 Bar Button Item,在最新的 xcode 中,您可以在左侧或右侧直接在导航栏中放置多个项目

      【讨论】:

        【解决方案4】:

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

        希望对你有帮助,祝你好运!

        【讨论】:

          【解决方案5】:

          您可以在情节提要中创建您的按钮,根据需要编辑/设置它们的样式,然后创建它们的插座并将它们添加为顶级对象,然后在运行时使用 [navigationItem setLeftBarButtonItems:] 和 [navigationItem setRightBarButtonItems:.. . 希望有帮助:)

          【讨论】:

            【解决方案6】:

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

            【讨论】:

            • 我不认为这是一个坏主意,Apple 在他们自己的应用商店应用程序中做到了。
            • @user623396 是的,因为 Apple 鼓励使用故事板
            【解决方案7】:

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

            【讨论】:

              猜你喜欢
              • 2015-03-24
              • 1970-01-01
              • 2011-08-09
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多