iOS在按钮中使用声明的标识符

时间:2015-06-29 06:01:24

标签: ios objective-c

我是iOS开发的新手,但我之前已经涉足过Java和C.

我尝试创建一个简单的计时器应用程序,当用户按下“开始”时,按钮文本将变为“重置”状态。但编译器抛出了一个"使用未声明的标识符' btnStart'"

我已经删除了剩余的代码,因为一切正常,直到我尝试更改按钮文字。

我很确定它在.h文件中正确声明,我认为这可能与为按钮本身添加另一个@property参数有关,但这并没有真正起作用。我如何正确地声明一个按钮呢?

由于

我的ViewController.m

- (IBAction)btnStart:(id)sender {

   [btnStart setTitle: @"RESET" forState: UIControlStateNormal]; //Error shown here
}

我的ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (weak, nonatomic) IBOutlet UILabel *lblDisplay;

- (IBAction)btnStart:(id)sender;
- (IBAction)btnStop:(id)sender;

@end

3 个答案:

答案 0 :(得分:2)

发件人应该是按钮本身。试试这个

- (IBAction)btnStart:(UIButton *)sender {
   [sender setTitle: @"RESET" forState: UIControlStateNormal];
}

答案 1 :(得分:1)

请在您声明的.h或.m文件中声明按钮IBOutlet -

@property (weak, nonatomic) IBOutlet UILabel *lblDisplay;

@property (weak, nonatomic) IBOutlet UIButton *btnStart;

并像这样使用

   [self.btnStart setTitle: @"RESET" forState: UIControlStateNormal]; 

答案 2 :(得分:0)

您可以在viewDidLoad函数中设置两个状态的按钮标题,如下所示

[btnStart setTitle: @"RESET" forState: UIControlStateNormal];
[btnStart setTitle: @"Start" forState: UIControlStateSelected];

并在您的函数中使用此代码

- (IBAction)btnStart:(id)sender {
UIButton *btn = (UIButton*)sender;
[btn setSelected:!btn.isSelected];
}