2014-12-02 46 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