【问题标题】:iPad - Show/Hide UIBarButtoniPad - 显示/隐藏 UIBarButton
【发布时间】:2010-11-18 06:43:55
【问题描述】:

有没有办法隐藏或显示 UIBarButtonItem?

【问题讨论】:

  • 我们可以通过将导航项的属性设置为 nil 来隐藏导航项,只要我们想显示它,我们就可以在条件中写入,以便我们可以显示按钮。

标签: iphone ipad uibarbuttonitem


【解决方案1】:

使用它来隐藏 barbutton 项。

self.navigationItem.rightBarButtonItem = nil;

【讨论】:

    【解决方案2】:

    实际上,UIBarButtonItem 并没有响应 .hidden。它不是 UIButton 的子类。

    这是一个快速示例,说明如何切换三个按钮:左键、中键和右键。

    //所以,在合适的地方

    IBOutlet UIToolbar *bottomToolbar;
    IBOutlet UIBarButtonItem *leftButton;
    IBOutlet UIBarButtonItem *flexerSpace;
    IBOutlet UIBarButtonItem *middleButton;
    IBOutlet UIBarButtonItem *rightButton;
    

    //然后这个在合适的地方

    @property (retain, nonatomic) IBOutlet UIToolbar *bottomToolbar;
    @property (retain, nonatomic) IBOutlet UIBarButtonItem *leftButton;
    @property (retain, nonatomic) IBOutlet UIBarButtonItem *flexerSpace;
    @property (retain, nonatomic) IBOutlet UIBarButtonItem *middleButton;
    @property (retain, nonatomic) IBOutlet UIBarButtonItem *rightButton;
    

    //然后在合适的地方

    @synthesize bottomToolbar;
    @synthesize leftButton;
    @synthesize flexerSpace;
    @synthesize middleButton;
    @synthesize rightButton;
    

    然后在 IB 或 Xcode4 IB 中重新加载你的类

    // 然后在你的

    view_switcher/控制器方法

    -(IBAction)switchToLeft:(id)sender {
    
    NSArray *newButtonArray = [NSArray arrayWithObjects: middleButton, flexerSpace, rightButton, nil];
    
    [bottomToolbar setItems:newButtonArray animated:NO]; //YES or NO either way it
    }
    
    -(IBAction)switchToMiddle:(id)sender {
    
    NSArray *newButtonArray = [NSArray arrayWithObjects: leftButton, flexerSpace, rightButton, nil];
    
    [bottomToolbar setItems:newButtonArray animated:NO]; //YES or NO either way it
    }
    
    -(IBAction)switchToRight:(id)sender {
    
    NSArray *newButtonArray = [NSArray arrayWithObjects: leftButton, flexerSpace, middleButton, nil];
    
    [bottomToolbar setItems:newButtonArray animated:NO]; //YES or NO either way it
    }
    

    然后连接按钮并添加您的视图切换,应该这样做......

    假设你可以填写一些部分

    【讨论】:

      【解决方案3】:

      这是我的 UIBarButtonItem 子类,用于公开 setHidden 方法。每当我的栏上有一个“可选”按钮时,我都会使用它。 它适用于文本或图像按钮。

      class AltoUIBarButtonItem: UIBarButtonItem {
      
      var originalImage : UIImage?
      var originalTitle : String?
      
      override func awakeFromNib() {
      
          originalTitle = self.title
          originalImage = self.image
      }
      
      func setHidden(_ hidden: Bool)
      {
          if hidden
          {
              if originalImage != nil { self.image = nil}
              if originalTitle != nil { self.title = ""}
              self.isEnabled = false
          }
          else
          {
              if originalImage != nil { self.image = originalImage}
              if originalTitle != nil { self.title = originalTitle}
              self.isEnabled = true
          }
      }
      
      func setOriginalTitle(_ originalTitle: String?)
      {
          self.originalTitle = originalTitle
      }
      

      }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-20
        • 2011-02-22
        • 2012-04-15
        相关资源
        最近更新 更多