Objective-C: ViewWillAppear запускается перед телом buttonTouchUpInside

У меня есть приложение Storyboard iOS с 2 контроллерами представления

Первый контроллер имеет кнопку UIB с выходом на следующий контроллер представления и метод buttonTouchUpInside.

В данный момент жизненный цикл второго контроллера представления начинается до запуска тела buttonTouchUpInside, что является плохой новостью, поскольку viewWillAppear полагается на завершение тела buttonTouchUpInside. Как я могу предотвратить это?

Заранее спасибо

1 ответ

Решение

Я предполагаю, что под "выходом к следующему контроллеру представления" вы подразумеваете переход к действию для отображения следующего контроллера представления, и да, это правильное поведение в раскадровках.

Если вы хотите выполнить IBAction перед выполнением перехода, вы должны определить ручной переход между двумя контроллерами представления без ссылки на кнопку, присвоить ему идентификатор в IB, а затем в определении метода IBAction для вашего первого контроллера представления использовать это код:

[self performSegueWithIdentifier:@"segueIdentifierGoesHere" sender:self];

Другие вопросы по тегам