В моем приложении есть кнопка, которая выполняет переход программно:
- (void)myButtonMethod
{
//execute segue programmatically
[self performSegueWithIdentifier: @"MySegue" sender: self];
}
Я хотел бы знать, есть ли способ ссылаться на конечный вид и передавать ему некоторые параметры.
Я знаю, что в prepareForSegue
методе я могу ссылаться на него с помощью:, myDestinationViewController *vc = [segue destinationViewController];
но я не знаю, как это выполнить программно.
У тебя есть идеи?
Спасибо ясса
ОБНОВИТЬ:
Извините за этот вопрос !!! Я просто обнаружил, что, даже если segue вызывается программно, prepareForSegue
метод вызывается в любом случае, и поэтому можно передавать параметры таким же обычным способом.
ios
view
parameters
storyboard
segue
yassassin
источник
источник
Ответы:
Ответ прост: нет никакой разницы в том, как вызван переход.
prepareForSegue:sender:
Метод вызывается в любом случае , и это, когда вы передаете свои параметры в поперечнике.источник
Старый вопрос, но вот код о том, как сделать то, что вы просите. В этом случае я передаю данные из выбранной ячейки в табличном представлении в другой контроллер представления.
в .h файле вида trget:
в .m файле:
dataModel
может бытьstring
,int
или как в этом случае это модель, которая содержит много предметовИЛИ...
источник
Свифт 4:
Свифт 3:
источник
Я понимаю проблему выполнения сеанса в одном месте и поддержания состояния для отправки параметров при подготовке к сеансу.
Я нашел способ сделать это. Я добавил свойство userInfoDict в ViewControllers, используя категорию. и я переопределил выполнение segue с идентификатором тоже таким образом, что если отправитель сам (значит, сам контроллер). Он передаст этот userInfoDict следующему ViewController.
Здесь вместо передачи всего UserInfoDict вы также можете передать определенные параметры как отправителя и переопределить соответственно.
1 вещь, которую нужно иметь в виду. не забудьте вызвать супер метод в вашем методе executeSegue.
источник
В случае, если вы используете новую версию Swift.
источник