我在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];
}
但问题是文本永远不会改变,有人看起来有什么问题吗? 提前谢谢!
答案 0 :(得分:1)
试试这段代码:
- (IBAction)Reproducir:(id)sender {
[sender setTitle:@"Continue" forState:UIControlStateNormal];
}
答案 1 :(得分:1)
你有很多方法可以做到这一点。
的示例:
// 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)
#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连接,因为相同的代码对我有效。