我有個ViewController
哪兩個UITextFields
。第一個文本字段是區域名稱,當點擊該文本字段時,會打開(使用KGModal顯示的視圖)a UITableViewController
,它將呼叫發送到服務器並獲取並顯示區域名稱。
第二個文本字段取決於區域文本字段。這是郵政編碼字段,當用戶選擇區域並點擊郵政編碼字段時,它會發送帶有區域名稱的電話以獲取該區域的郵政編碼。
我的問題是,如何使用相同的表視圖控制器類來發送基於發件人文本字段的不同的呼叫。我正在使用KGModal來顯示視圖。如何找到哪個textField已經加載了TableView
UPDATE:
這裏的UITextField的委託方法,我要送發送者的id
。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
if (textField==self.areaField) {
[self.view endEditing:YES];
[self showTableView:self.areaField];
return NO;
}
else if (textField==self.zipField)
{
[self.view endEditing:YES];
[self showTableView:self.zipField];
return NO;
}
else return YES;
}
而且在我使用它作爲
-(void)showTableView:(id)sender
{
ServiceEnMTableViewController *ivc = [self.storyboard instantiateViewControllerWithIdentifier:@"CountryVC"];
//ivc.delegate = self;
ivc.view.frame = CGRectMake(0, 0, CGRectGetWidth([[UIScreen mainScreen] bounds]) - 40, CGRectGetHeight([[UIScreen mainScreen] bounds]) - 80);
[[KGModal sharedInstance] setCloseButtonType:KGModalCloseButtonTypeRight];
[[KGModal sharedInstance] showWithContentViewController:ivc andAnimated:YES];
[[KGModal sharedInstance] setTapOutsideToDismiss:YES];
[[KGModal sharedInstance] setModalBackgroundColor:[UIColor clearColor]];
[[KGModal sharedInstance] setBackgroundDisplayStyle:KGModalBackgroundDisplayStyleSolid];
}
因此,如何通過這裏發送的方法是什麼?
您的代碼是沒有意義的。你有一個回調函數('textFieldShouldBeginEditing')返回2個文本字段之一,你檢查它是哪個文本字段,但不管執行相同的代碼。 'showTableView'現在不知道哪個文本字段是哪個。簡單地按照我在回答中所說的,將'sender'傳遞給'showTableView'並在其中檢查它是哪個文本字段,或者將param更改爲一個布爾值並將其從文本字段回調中傳遞回來 –
但是'showTableView:(id)sender '以'(id)'的形式獲取值。所以基於此我在zip類中創建了一個'@property(strong,nonnull)NSString * callFor;',其中我將傳遞來自area類的字符串值並將其與zip進行比較併發送該調用。我可以將字符串更改爲布爾值來執行相同的操作。這是你說的嗎?請稍微編寫一下,我可能會有更多的想法。 –
請在下面看到更新的答案 –