0

我在 SecondVC 上有两个视图控制器UITextField,我想将数据推回到UILabel第一个视图控制器中的 a 中。第一个 ViewController 嵌入在UINavigationController.

prepareForSegue?

4

1 回答 1

1

一种简单的方法是使用块属性。

在 SecondVC 上公开一个块属性,该属性采用NSString

@property (copy, nonatomic) void ^TextFieldBlock(NSString *textString);

prepareForSegue在第一个视图控制器中设置此属性并更新您UILabel的块内部(使用weakSelf以避免保留周期问题):

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    __weak typeof(self)weakSelf = self;
    [segue.destinationViewController setTextFieldBlock:^(NSString *textString) {
        weakSelf.mainLabel.text = textString;
    }];
}

然后调用 SecondVC 中的 block 属性,并在UITextField返回时传入 's 文本:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    [self TextFieldBlock](textField.text);
    return YES;
}
于 2013-02-04T20:14:51.257 回答