2013-11-14 5 views
1

Я хотел бы программно добавить два текстовых поля в подкласс ClassViewCell (более поздний), но с трудным доступом к текстовому полю из контроллера представления.Программное добавление двух текстовых полей в таблицуViewCell

Мой стол класс вид саб:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     textField = [[UITextField alloc] initWithFrame:CGRectZero]; 
     textField.clearsOnBeginEditing = NO; 
     textField.textAlignment = UITextAutocapitalizationTypeAllCharacters; 
     textField.returnKeyType = UIReturnKeyDone; 
     [self.contentView addSubview:textField]; 
    } 
    return self; 
} 


- (void)layoutSubviews 
{ 
    [super layoutSubviews]; 
    CGRect rect2 = CGRectMake(100.0, 10.0, 200, 30.0); 
    textField.text = @"testing"; 
    [textField setFrame:rect2]; 

} 

В моей точки зрения контроллера:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 

    XTSessionCell_iPad *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

    if (cell == nil) { 
     cell = [[XTSessionCell_iPad alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; 
    } 

    // Configure the cell... 
    // ???? 
    // cell.textField.text = @"enter"; 

    return cell; 
} 

Любая помощь очень appricatated.

Благодаря

+1

Вы должны определить TextFields как свойства ('@ property')' XTSessionCell_iPad'. Это должно быть сделано в заголовке '@ interface' (файл .h, а не файл .m) –

+0

Итак, вы хотите добавить их в ячейку tableview? Кажется, вы добавляете их в contentView здесь. Это твой стол? – c0d3Junk13

+2

@rokjarc Сделать их доступными только для чтения. – rmaddy

ответ

1

Как уже упоминалось в комментариях, сделайте textView только для чтения свойства в файле XTSessionCell_iPad.h. Как минимум файл XTSessionCell_iPad.h будет выглядеть так:

@interface XTSessionCell_iPad : UITableViewCell 

@property (nonatomic, readonly) UITextField *textField; 

@end 

И ваш файл XTSessionCell_iPad.m будет иметь расширение класса, чтобы разрешить запись этого свойства:

@interface XTSessionCell_iPad() 

@property (nonatomic, readwrite) UITextField *textField; 

@end 
+0

Спасибо, все работает .. :) – slickfive

Смежные вопросы