我在 SecondVC 上有两个视图控制器UITextField
,我想将数据推回到UILabel
第一个视图控制器中的 a 中。第一个 ViewController 嵌入在UINavigationController
.
prepareForSegue
?
我在 SecondVC 上有两个视图控制器UITextField
,我想将数据推回到UILabel
第一个视图控制器中的 a 中。第一个 ViewController 嵌入在UINavigationController
.
prepareForSegue
?
一种简单的方法是使用块属性。
在 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;
}