0
我有两个视图控制器的第二个VC上的UITextField
,我想推回第一个viewController中的数据回UILabel
。 第一个ViewController嵌入在UINavigationController
中。通过ViewControllers与故事板传递数据
prepareForSegue
?
我有两个视图控制器的第二个VC上的UITextField
,我想推回第一个viewController中的数据回UILabel
。 第一个ViewController嵌入在UINavigationController
中。通过ViewControllers与故事板传递数据
prepareForSegue
?
一个简单的方法是使用块属性。
揭露其采用NSString
在SecondVC块属性:
@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并传入UITextField
的文本时,它返回:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
[self TextFieldBlock](textField.text);
return YES;
}