Я столкнулся с небольшой проблемой (неудивительно, потому что я только начал с xcode). Я пытался решить это с помощью if-statemens, но они были явно неправильным способом.Два ViewControllers - у первого есть x кнопки, у второго есть x меток
Вот что я пытаюсь сделать: в первом ViewController у меня есть, например, 4 кнопки. Если пользователь нажимает первую кнопку, он переходит к ViewController2, и на этикетке указано «Вы нажали первую кнопку». Если пользователь нажимает вторую кнопку, он переходит в ViewController2, и на этикетке указано «Вы нажали вторую кнопку» и так далее.
Я попытался решить эту проблему с Tag отчетности, как: FirstViewController.m
- (IBAction)switch:(id)sender;
{
UIButton *buttonPressed = (UIButton *)sender;
SecondViewController *second =[[SecondViewController alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:second animated:YES];
second.buttonTag = buttonPressed.tag;
[self.navigationController pushViewController:second animated:YES];
(button.tag = 9001);
- (IBAction)switch2:(id)sender2;
{
UIButton *buttonPressed = (UIButton *)sender2;
SecondViewController *third =[[SecondViewController alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:third animated:YES];
second.buttonTag = buttonPressed.tag;
[self.navigationController pushViewController:third animated:YES];
(button2.tag = 9002);
А вот то, что я сделал в SecondViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
if (buttonTag == 9001) {
self.label1.text = [[NSString alloc] initWithFormat:@"Radnomtext"];
self.label2.text = [[NSString alloc] initWithFormat:@"Randomtext"];
self.label3.text = [[NSString alloc] initWithFormat:@"Randomtext?"];
if (buttonTag == 9002) {
self.label1.text = [[NSString alloc] initWithFormat:@"Radnomtext2"];
self.label2.text = [[NSString alloc] initWithFormat:@"Randomtext2"];
self.label3.text = [[NSString alloc] initWithFormat:@"Randomtext2?"];
Он всегда дает мне этикетки из ButtonTag 9001 - Кто-нибудь знает почему?
Ваше «редактирование» - отдельный вопрос. Вы хотите сказать: '(buttonTag == 9001)'. Ваш единственный знак равенства присваивает buttonTag, а не проверку на равенство. Поэтому, когда выполнение переходит к 'if ((buttonTag = 9002))' buttonTag присваивается 9002, что верно. Поэтому он дважды меняет ваши метки. – NJones
Вы правы, извините, но я не хотел открывать новый вопрос из-за этого. Я изменил его на ваше предложение, но теперь он отображает только метки из Tag 9001 :( – Blade