【问题标题】:Get UIButton reference from viewDidLoad从 viewDidLoad 获取 UIButton 引用
【发布时间】:2012-10-18 13:26:51
【问题描述】:

我对 iPhone 开发非常陌生。我正在尝试禁用已经存在的按钮,但实际上无法获得指向视图中特定元素的指针。例如,我在 viewController 标头中有以下内容

- (IBAction)one:(id)sender;

实现是

- (IBAction)one:(id)sender {

}

这只是事件处理程序。但是,我需要在视图打开时禁用该按钮,并且我对如何获取对事件处理程序之外的元素的引用有点迷茫。

换句话说,我的想法是:

UIButton* myButton = //something

某事是我不知道该做什么的地方。有任何想法吗?我非常感谢我在这里获得的任何帮助!

【问题讨论】:

  • 一种方法是将标签设置为按钮特定事件并在需要时更改..
  • 在界面上,从按钮的属性中,将其隐藏

标签: iphone objective-c


【解决方案1】:

你需要在界面中为你的按钮创建一个属性:

@property(nonatomic, retain) IBOutlet UIButton * button;

并将其添加到实现中:

@synthesize button;

然后在界面生成器中将按钮连接到它。在此之后,您可以通过以下方式禁用该按钮:

button.enabled = NO;

希望我能帮上忙!

【讨论】:

  • 很遗憾,我在几分钟内无法选择您的答案,但是要添加的一件事是您需要在实现中@synthesize 变量。非常感谢!
【解决方案2】:

只需为您的按钮添加标签并使用标签值访问您的按钮。

UIButton *btn = (UIButton*)[self.view viewWithTag:1];
[btn setHidden:YES];

【讨论】:

    【解决方案3】:

    在您的 .h 文件中

    #import <UIKit/UIKit.h>
    
     @interface RpViewController : UIViewController
    
     @property (retain , nonatomic)IBOutlet UIButton *Btn1;
    
     @end
    

    在你的 .m 文件中,在实现中写下这个:

    @synthesize Btn1;
    
    Now on interface , click on button.
    In button's properties - > Drawings - check   Hidden    checkbox.
    
    Wherever you want to show that button , just write.
    
    
    
     [Btn1 setHidden:FALSE];
    

    【讨论】:

      【解决方案4】:
      @property (strong, nonatomic) UIButton *button;
      @synthesize button;
      
      // In View Did Load...
      self.button = [UIButton buttonWithType:UIButtonTypeCustom]; // button can be of any type. 
      [self.button setTag:1]; 
      // if you have more buttons initialize it and set its tag. you can get to know which button was pressed using tags.
      
      [button addTarget:self action:@selector(buttonEvent:) forControlEvents:UIControlEventTouchUpInside];
      
      -(void) buttonEvent:(UIButton *) sender
      {
         NSLog(@"%d",sender.tag);
          if(sender.tag == 1)
          {
            [self.button setEnabled:NO]; // This makes your button disabled, i.e you can see the button but you cannot click on it.
            [self.button setHidden:YES]; // This makes your button hidden.
           }
      }
      

      如果您有更多疑问,请回复我。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-28
        • 1970-01-01
        相关资源
        最近更新 更多