【问题标题】:Navigation bar with multiple buttons带有多个按钮的导航栏
【发布时间】:2013-01-15 01:45:00
【问题描述】:

我有一个带有左右按钮的导航栏,我需要在右侧按钮旁边放另一个按钮。有谁知道我该怎么做?这里有一些代码可以提供帮助:

- (id)init {
    self = [super initWithStyle:UITableViewStyleGrouped];
    if (self) {

        _pinArray = [[NSArray alloc]init];
        _pinArray = [Data singleton].annotations;

        UIBarButtonItem *right = [[UIBarButtonItem alloc]initWithTitle:@"Map"
                                                                 style:UIBarButtonItemStylePlain
                                                            target:self
                                                            action:@selector(goToMap:)];
        self.navigationItem.rightBarButtonItem = right;

        UIBarButtonItem *left = [[UIBarButtonItem alloc]initWithTitle:@"Menu"
                                                            style:UIBarButtonItemStylePlain
                                                           target:self
                                                           action:@selector(goToMenu:)];
        self.navigationItem.leftBarButtonItem = left;
        self.navigationItem.title = @"My Homes";
    }
    return self;
}

【问题讨论】:

    标签: ios objective-c uinavigationcontroller uibarbuttonitem


    【解决方案1】:

    这很容易:)

    https://developer.apple.com/documentation/uikit/uinavigationitem/1624956-rightbarbuttonitems

    navigationItem.rightBarButtonItems = [rightA, rightB] // @[rightA, rightB] for ObjC
    

    【讨论】:

    • 其实没有上限。您可以根据需要添加任意数量,即使是有害的哈哈。但实际上它尽可能多地适合您。想想你的用户!
    • 如果我们想禁用其中任何一个怎么办??
    • 最简单的方法是将单个按钮作为属性保存。然后你可以简单地在每个按钮上单独设置enabled = false
    • 喜欢事情就这么简单
    【解决方案2】:

    不要使用self.navigationItem.rightBarButtonItem,而是使用

    self.navigationItem.rightBarButtonItems //note the plural
    

    这允许您设置一组按钮而不是单个按钮。

    详情请参阅UINavigationItem class reference

    【讨论】:

      【解决方案3】:
        let RightBarButton = UIButton()
              RightBarButton.setTitleColor(UIColor.blueColor(), forState: .Normal)
              RightBarButton.frame = CGRectMake(30,0,30,30)
              RightBarButton.setImage(UIImage(named: "search-icon.png"), forState: .Normal)
              RightBarButton.addTarget(self, action: #selector(BaseViewController.OpenQuickLink), forControlEvents: .TouchUpInside)
      
              let RightBarButton2 = UIButton()
              RightBarButton2.setTitleColor(UIColor.blueColor(), forState: .Normal)
              RightBarButton2.frame = CGRectMake(0,0,30,30)
              RightBarButton2.setImage(UIImage(named: "share-icon.png"), forState: .Normal)
              RightBarButton2.addTarget(self, action: #selector(BaseViewController.Opensharelink), forControlEvents: .TouchUpInside)
              let barButtonItem1 = UIBarButtonItem(customView: RightBarButton2)
      
              let barButtonItem = UIBarButtonItem(customView: RightBarButton)
      
      
      navigationItem.rightBarButtonItems = [barButtonItem1, barButtonItem2]
      

      【讨论】:

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