2012-12-06 3 views

Répondre

1

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; 
} 
Questions connexes