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