消息到超类的属性

时间:2011-08-22 20:13:50

标签: objective-c ios properties

我有一个文本字段,它是CustomCell类中的IBOutlet。然后该单元格在UITableViewController子类中实例化。最后我有一个UITableViewController的子类。如何将消息发送到最后一个子类的文本字段?谢谢!

//CustomCell.h
@interface CustomCell : UITableViewCell
@property (retain) IBOutlet UITextField *textField

//DetailViewController.h
#import CustomCell.h
@interface DetailViewController : UITableViewController
@property (retain) IBOutlet CustomCell *CustomCell

//DetailViewController.m  just the cell getting instantiated.

static NSString *CustomCellIdentifier = @"CustomCellIdentifier";
DetailViewCell *cell = 
 (DetailViewCell *)[tableView dequeueReusableCellWithIdentifier:CustomCellIdentifier];

if (!cell) {        
      [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
      cell = customCell;
}

//AddItemViewController.h
#import DetailViewController.h
@interface AddItemViewController : DetailViewController

//AddItemViewController.m

-(void)viewDidLoad
{
    textField.text = @"The text" //obviously this doesn't work
}

2 个答案:

答案 0 :(得分:0)

您不应该直接通过属性公开单元格,而应该访问数据源。

在您的示例中,AddItemViewController继承自DetailViewController,其属性为CustomCell,因此您需要从该属性访问textField。

self.CustomCell.textField.text = @"The text";

答案 1 :(得分:0)

应该是cell.textField.text;。您可能必须在此方法中执行此操作:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;