如何正确使用If-Statements?

时间:2012-01-07 15:44:41

标签: ios if-statement

我自己尝试了一些东西,但是无法真正掌握它。 我想做两件事: 首先,用户可以按下三个按钮中的一个 - 它们都链接到同一个ViewController,但是当用户按下第一个按钮时,在第二个ViewController中三个标签会相应地改变。然后,用户可以输入将在第三视图中显示的一些数据,也相应地输入在第一视图中按下哪个按钮的数据。 我用IF语句尝试了它,例如(如果ViewController.button1waspressed == True)它并没有真正起作用。我也用标签试过它,例如(Button1.tag = 1)

有人能给我一个简短的例子说明这是如何运作的吗?

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,反之亦然)

1 个答案:

答案 0 :(得分:3)

你的按钮都应该直接调用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会确切地知道您正在谈论的按钮。