Ответ 1
Вы не можете установить текст UITextField
(и любых других компонентов, таких как UILabel
и UITextView
), в процессе подготовки к segue, поскольку все компоненты представления недавно назначенного контроллера еще не инициализированы (в это время все они nil
), они только будет отображаться viewController (и он будет загружен).
Вы должны создать свойство NSString
в представленном viewController, а затем где-то внутри вашего другого контроллера представления, например viewDidLoad
, установите текст текстового поля как это значение свойства.
Как это:
В viewController, который представит другой viewController:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"ViewController2"])
{
ViewController2 *vc2 = [segue destinationViewController];
vc2.myString = self.textField.text;
}
}
И внутри представленного viewController:
- (void)viewDidLoad
{
[super viewDidLoad];
(...)
self.textField.text = self.myString;
}