如何正确使用If-Statements?
问题描述:
我自己尝试了一些东西,但无法真正掌握它。 我想做两件事: 首先用户可以按三个按钮之一 - 他们都链接到相同的ViewController,但是当用户按下第一个按钮时,三个标签在第二个ViewController中相应地改变。然后用户可以输入一些数据,这些数据将显示在第三个视图中,也相应地在第一个视图中按下哪个按钮。我尝试了IF语句,例如(IF ViewController.button1waspressed == True),它并没有真正的工作。我也尝试过使用标签,例如(Button1.tag = 1)如何正确使用If-Statements?
有人可以给我一个关于如何工作的简短例子吗?
FirstViewController.m
- (IBAction)switch:(id)sender;
{
SecondViewController *second =[[SecondViewController alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:second animated:YES];
SecondViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
if (sender == self.button1) {
NSString *greeting = [[NSString alloc] initWithFormat:@"Randomtext"];
self.label.text = greeting;
}
}
的问题是明显的在这其中,SecondViewController不能看到从第一个属性。 (是的,我进口FirstViewController反之亦然)
答
你的按钮都应该直接调用IBAction
S(方法像这样定义):
- (IBAction)doSomething:(id)sender;
定义他们为IBAction
的揭露他们的蓝色连接接口构建器中的连接线。一旦你将它们挂钩并调用方法,你可以简单地在sender
参数上使用相等检查,该调用按钮将自动设置为它自己。
if (sender == self.myButton) {
// do something
}
在这里,我假设你已经有了一个叫您的ViewController myButton
属性,这将是一个IBOutlet
:
@property (nonatomic, retain) IBoutlet UIButton *myButton;
这暴露了该属性与蓝色连接线连接在界面生成器中,所以当你说myButton
时,你的ViewController将确切地知道你正在谈论哪个按钮。
我做了一个编辑,现在希望它更清楚我的意思:) – Blade 2012-01-07 16:44:49