【问题标题】:How can I set two buttons on the right side of an UINavigationBar?如何在 UINavigationBar 的右侧设置两个按钮?
【发布时间】:2015-07-24 13:58:36
【问题描述】:

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

Edit Table title + (for adding new items)

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

< Back Table title Edit +

你知道在顶部栏中显示 3 个按钮(返回 - 编辑 - 添加)和标题的任何其他布局吗?

抱歉没有发布图片,在此先感谢。

附:我想知道是否可以使用内置的后退按钮和编辑按钮(我的意思是系统自动放置到导航栏的那些)来完成我要求的事情。

【问题讨论】:

    标签: ios objective-c uinavigationbar uibarbuttonitem


    【解决方案1】:

    您需要设置右侧栏项目数组以设置右侧栏按钮...

    这是设置右侧栏按钮项目的 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];
    

    【讨论】:

      【解决方案2】:
      [self.navigationItem setRightBarButtonItems:@[/*array of UIBarButtonItem*/] animated:NO]
      

      Apple doc

      【讨论】:

        【解决方案3】:

        对于快速遇到这个问题的人,这是正确的答案:

        let barButton_array: [UIBarButtonItem] = [Button1, Button2]
        navigationItem.setRightBarButtonItems(barButton_array, animated: false)
        

        【讨论】:

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