Une manière simple consiste à utiliser une propriété de bloc.
Expose une propriété de bloc sur le SecondVC qui prend un NSString
:
@property (copy, nonatomic) void ^TextFieldBlock(NSString *textString);
Définissez cette propriété en prepareForSegue
dans le premier contrôleur de vue et mettre à jour votre UILabel
à l'intérieur du bloc (utiliser pour éviter de retenir les problèmes du cycle weakSelf):
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
__weak typeof(self)weakSelf = self;
[segue.destinationViewController setTextFieldBlock:^(NSString *textString) {
weakSelf.mainLabel.text = textString;
}];
}
invoquer ensuite la propriété du bloc dans le SecondVC et passer dans le texte de la UITextField
quand il retourne:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
[self TextFieldBlock](textField.text);
return YES;
}