在iOS中将文本更改为uibutton

时间:2013-07-18 05:50:22

标签: ios objective-c uibutton uilabel

我在iOS中将文本更改为uibutton时出错了

@interface ViewControllerSonidos : UIViewController{
    __weak IBOutlet UIButton *initgame;
}
@property (weak, nonatomic) IBOutlet UIButton *initgame;
- (IBAction)Reproducir:(id)sender;

我的实现文件如下所示:

@implementation ViewControllerSonidos
@synthesize initgame

- (IBAction)Reproducir:(id)sender {
    [initgame setTitle:@"Continue" forState:UIControlStateNormal];
}

但问题是文本永远不会改变,有人看起来有什么问题吗? 提前谢谢!

6 个答案:

答案 0 :(得分:1)

试试这段代码:

- (IBAction)Reproducir:(id)sender {
    [sender setTitle:@"Continue" forState:UIControlStateNormal];
}

答案 1 :(得分:1)

你有很多方法可以做到这一点。

  • 您可以将其与IBOutlet连接,
  • 您可以将其与ID发件人一起使用
  • 或者您可以使用简单的IBAction签名

的示例:

 // using the id sender method
 - (IBAction) buttonTitleChange:(id)sender {
    [sender setTitle: @"Title" forState:UIControlStateNormal];
 }

 // using the connection one
 - (IBAction) buttonTitleChange: (id)sender {
    //AFTER CONNECTING THE BUTTON IN .XIB
    [buttonName setTitle:@"Title" forState:UIControlStateNormal];
 }

 // and the regular void method....also requiring the linkage of the .xib
 - (IBAction) buttonTitleChange {
    [buttonName setTitle:@"Title" forState:UIControlStateNormal];
 }

只需记住连接.xib中的按钮即可。

使用id发送者,只是说你可以将它用于任何类型的对象。带有连接的id发送者只是编写方法的一种方式,而常规方法只是一种练习方式。

这完全取决于你的编程方式。

希望这有帮助!

答案 2 :(得分:0)

IBOutlet可能有问题,您忘了在XIB中连接它,否则它可以正常工作。

答案 3 :(得分:0)

-(void)btnChanged
{
    [m_btnSample setTitle:@"Continue" forState:UIControlStateNormal];

}

答案 4 :(得分:0)

ViewController.h中的

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
- (IBAction)initgame:(id)sender;
@property (retain, nonatomic) IBOutlet UIButton *initgame;
@end
ViewController.m中的

- (IBAction)initgame:(id)sender {
[self.initgame setTitle:@"Continue" forState:UIControlStateNormal];   
}

不要忘记将.xib中的按钮附加到属性和IBAction。

如果它现在不起作用,只需删除Button和IBAction / Property之间的连接,为它创建新的IBAction和属性,它将适用于上面的代码。

答案 5 :(得分:0)

是的,请检查IBOutlet连接,因为相同的代码对我有效。