无法在tableViewController中访问tableViewCellController中声明的属性

时间:2015-01-10 07:21:53

标签: objective-c xcode6

我在tableViewCellController.h中声明了三个UITextView属性。我将它们链接到故事板并将我的原型单元类分配给我的tableViewCellController。

@interface RankingsTableViewCell : UITableViewCell

@property (nonatomic, strong) IBOutlet UITextView *playerRank;
@property (nonatomic, strong) IBOutlet UITextView *playerName;
@property (nonatomic, strong) IBOutlet UITextView *playerPoints;


@end

当我尝试让它们在tableViewController.m中显示文本时,我无法访问这些UITextView属性。我在

中这样做
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath    *)indexPath 

我已经在tableViewController.m中导入了tableViewCellController.h

提前谢谢。

1 个答案:

答案 0 :(得分:0)

你应该做的是在viewDidLoad方法中注册你的NIB并在cellForRowAtIndexPath中使用它。像这样:

在viewDidLoad中:

NSString *myIdentifier = @"itemCellIdentifier";
[self.tableView registerNib:[UINib nibWithNibName:@"itemCellNibName" bundle:nil] forCellReuseIdentifier:myIdentifier];

应该从UITableViewCell属性中的IB设置小区标识符: cell identifier

同样在IB中,此UITableViewCell的类名应设置为RankingsTableViewCell。如下所示(用SwipeableCell替换):

enter image description here

然后在cellForRowAtIndexPath

-(RankingsTableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
     static NSString *myIdentifier = @"itemCellIdentifier";

     RankingsTableViewCell *cell = (itemCell *)[tableView dequeueReusableCellWithIdentifier:myIdentifier];
     cell.playerRank.text = @"rank"; //accessing properties
     return cell;
}

就是这样。 我没有运行这个特定的代码片段,图像是从Google收集的。但这应该可以完成你的工作。