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

iOS在按钮中使用声明的标识符,ios,objective-c,Ios,Objective C,我是iOS开发的新手,但我以前涉足过Java和C 我正在尝试创建一个简单的计时器应用程序,当用户按下“开始”时,按钮文本将变成“重置”,但编译器向我抛出“使用未声明的标识符“btnStart” 我删除了其余的代码,因为在我尝试更改按钮文本之前,一切都正常运行 我非常确定它在.h文件中的声明是正确的,我认为这可能与为按钮本身添加另一个@property参数有关,但这并没有真正起作用。那么我如何正确地声明一个按钮呢 谢谢 我的ViewController.m - (IBAction)btnStart

我是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
#导入
@界面ViewController:UIViewController
@属性(弱、非原子)IBUILabel*lblDisplay;
-(iAction)btnStart:(id)发送方;
-(iAction)btnStop:(id)发送方;
@结束

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

像这样使用它

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

发送者应该是按钮本身。试试这个

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

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

   [self.btnStart setTitle: @"RESET" forState: UIControlStateNormal]; 
[btnStart setTitle: @"RESET" forState: UIControlStateNormal];
[btnStart setTitle: @"Start" forState: UIControlStateSelected];
在你的函数中使用这个代码

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

确保为按钮添加了引用插座。一切正常。这是错误的,问题是他没有将
brnStart
声明为按钮,而是将
btnStart:
声明为函数。他只想在按钮状态更改时更改按钮上的名称,并且可以使用此代码。而且这个函数不需要创建一个新函数来将bak恢复为它的名称。只要改变状态就行了。我是说第一部分你有
[btnStart setTitle:…
btnStart
不作为ivar存在,因此我发誓我尝试过这样做,但可能没有正确链接GUI。谢谢:)这只适用于我从按钮本身调用按钮的情况。但是如果我想从另一个函数更改其标题,我需要“self”阿什福洛斯的回答,无论如何谢谢你!