2014-12-02 17 views
-1

我在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; - 存在的价值,但文本框没有。

正如我认为,问题属于在这行代码:

id<HPAAddCarOverallInfoTVCDelegate> strongDelegate = [[HPAAddCarMainViewController alloc] init]; 

我猜,这代表是不是与我一起工作精确视图。 Bouth视图通过故事板同时加载。如果我的想法正确无误,请告诉我,我该如何给出一个确切的指针first视图,当选项卡栏视图控制器在屏幕上时加载视图为second

+0

您必须将“第一视图”分配给您的委托。像strongDelegate = firstViewController。何时何地取决于您初始化“第一次查看”的地点。 – 2014-12-02 11:03:18

回答

0

您正在创建一个新的视图控制器textFieldHasChanged。如果您有IB该视图控制器,实例化这样的:

UIStoryboard *st = [UIStoryboard storyboardWithName:[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"] bundle:[NSBundle mainBundle]]; 
id<HPAAddCarOverallInfoTVCDelegate> strongDelegate = st instantiateViewControllerWithIdentifier:@"identifier"]; 

哪里identifier是你已经在你的故事板给您的视图控制器的标识。

+0

谢谢你的回复。这个建议的确触发了委托方法。但是,不幸的是我有相同的行为 - 我无法以任何方式将'value'赋值给方法声明中的textFields,但可以在方法外执行此操作。 – 2014-12-02 12:22:56