Как правильно использовать If-Statements? - PullRequest
1 голос
/ 07 января 2012

Я попробовал несколько вещей сам, но действительно не мог справиться с этим. Я хочу сделать две вещи: Сначала пользователь может нажать одну из трех кнопок - все они ссылаются на один и тот же ViewController, но когда пользователь нажимает первую кнопку, три метки соответственно меняются в этом втором ViewController. И тогда пользователь может ввести некоторые данные, которые будут отображаться в третьем представлении, в том числе, соответственно, какая кнопка была нажата в первом представлении. Я попробовал это с заявлениями IF, например (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 Ответ

3 голосов
/ 07 января 2012

Все ваши кнопки должны напрямую вызывать IBAction s (методы определены следующим образом):

- (IBAction)doSomething:(id)sender;

Определение их как IBAction s позволяет связать их с синими линиями соединения в конструкторе интерфейсов.Как только вы подключите их и вызовете метод, вы можете просто использовать проверку на равенство для параметра sender, который вызывающая кнопка автоматически установит для себя.

if (sender == self.myButton) {
    // do something
}

Здесь я 'м при условии, что у вас есть свойство с именем myButton в вашем ViewController, которое будет IBOutlet:

@property (nonatomic, retain) IBoutlet UIButton *myButton;

Это предоставляет это свойство для соединения с синими линиями соединения в конструкторе интерфейса,так что ваш ViewController будет точно знать, о какой кнопке вы говорите, когда вы говорите myButton.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...