two views
中有Tab Bar View
。我希望我的second
视图通知first
视图,其文本字段的值已更改。我已经为它完成了所有必要的编码,但有一个问题 - first
视图在方法声明中没有看到连接的标签出口。
second
视图的代码:
- (IBAction)textFieldHasChanged:(UITextField *)sender {
id<HPAAddCarOverallInfoTVCDelegate> strongDelegate = [[HPAAddCarMainViewController alloc] init];
if([strongDelegate respondsToSelector:@selector(addCarOverallInfoVC:textFieldValueChanged:)]) {
[strongDelegate addCarOverallInfoVC:self textFieldValueChanged:sender.text];
}
}
first
视图的代码:
-(void)addCarOverallInfoVC:(HPAAddCarOverallInfoTableViewController *)viewController textFieldValueChanged:(NSString *)value
{
self.overallVCFieldCount.text = value;
NSLog(@"%@", value);
}
self.overallVCFieldCount.text = value;
- 值存在,但textField没有。
我认为,问题属于这行代码:
id<HPAAddCarOverallInfoTVCDelegate> strongDelegate = [[HPAAddCarMainViewController alloc] init];
我想,该代表并不是我正在使用的确切视图。通过故事板同时加载Bouth视图。如果我的想法是正确的,你能告诉我吗,当Tab Bar View控制器进入屏幕时,如何指向精确的first
视图,其中second
视图被加载?
答案 0 :(得分:0)
您正在textFieldHasChanged
中创建新的视图控制器。如果您在IB中有该视图控制器,请将其实例化为:
UIStoryboard *st = [UIStoryboard storyboardWithName:[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"] bundle:[NSBundle mainBundle]];
id<HPAAddCarOverallInfoTVCDelegate> strongDelegate = st instantiateViewControllerWithIdentifier:@"identifier"];
identifier
是您在故事板中为视图控制器提供的标识符。