【发布时间】:2015-01-30 14:10:00
【问题描述】:
我在Tab Bar View 中有two views。我希望我的 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];
我猜,那个代表不是我正在使用的确切视图。通过情节提要同时加载两个视图。如果我的想法是正确的,你能告诉我,我怎样才能给精确的first 视图指针,当标签栏视图控制器进入屏幕时,second 视图被加载?
【问题讨论】:
-
您必须将“第一个视图”分配给您的委托。像 strongDelegate = firstViewController.何时何地取决于您启动“第一视图”的位置。
标签: ios objective-c delegates delegation