У меня есть UITableView, ячейки которого настроены в файле NIB, поэтому я могу иметь UILabel и UITextField.
Поэтому мой cellForRowAtIndexPath выглядит так:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
SectionCustomCell *cell = (SectionCustomCell *)[tableView
dequeueReusableCellWithIdentifier: @"Section"];
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SectionCustomCell"
owner:self
options:nil];
cell = [nib objectAtIndex:0];
// Set the label value
[[cell inputLabel] setText:@"something"];
// Set the textfield tag property
}
Поэтому для данного раздела / строки я собираюсь назначить некоторый текст для UILabel, определенный как inputLabel , и иметь UITextField с именем inputTextField получить некоторый текст от пользователя ,
Мой план состоит в том, чтобы установить свойство tag UITextField, чтобы я мог определить, какое поле я получаю в делегате textFieldDidEndEditing .
Теперь моя проблема, если я поставлю этот код:
UITextField *textField = nil;
for (UIView *oneView in cell.contentView.subviews)
{
if ([oneView isMemberOfClass:[UITextField class]])
textField = (UITextField *)oneView;
}
textField.tag = [indexPath row];
свойство тега установлено правильно. (Я знаю это из заявления NSLog). Однако, если я сделаю следующее, не настроен правильно. Это всегда 1, как определено в IB.
cell.inputTextField.tag = [indexPath row];
но для меня это должно работать. Я делаю тот же принцип с настройкой текста надписей. Может ли кто-нибудь помочь мне понять, почему это не работает?
Я новичок в iOS, поэтому будьте осторожны: -)
Спасибо
Mike