2

我拥有的是在单独的.xib. 有了它,我就有了一个 Objective-C 类。我将自定义单元格中的标签连接到自定义单元格的类。

在我的主要 .xib 中,我有一个TableView自定义单元格被添加到。进行填充的代码位于主类 (ViewController.m) 中。

那么如何label从主类(ViewController.m)更改自定义单元格中的?

当用户点击自定义单元格时,会显示一个对话框,并且label自定义单元格中的文本会根据对话框中选择的按钮进行更改。

4

4 回答 4

2

由于它是一个表格单元格,我假设您在表格视图中使用它。你通常通过

- (UITableViewCell *)UITableView:(UITableView *) cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    static NSString *CellIdentifier = @"myCustomCell";
    MyCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MyCustomCell" owner:self options:nil];
        for (id anObject in nib) {
            if ([anObject isKindOfClass:[MyCustomCell class]]) {
                cell = (MyCustomCell *)anObject;
            }
        }
    }
    cell.myLabel.text = @"Some Text"; // This will set myLabel text to "Some Text"
    return cell;
}
于 2013-01-05T02:22:01.573 回答
1

您必须为标签分配一个标签,即界面生成器中的 99。然后,在 ViewController.m 中,当你加载单元格时,加载 xib 后你可以做

UILabel *label = [cell viewWithTag: 99];
label.text = @"Some text here... (:";

那会成功的!:)

于 2013-01-05T02:18:44.983 回答
1

它非常简单:

首先在您的 customcell 中创建标签的属性

自定义单元格.h

@interface CustomCell : UITableViewCell 

@property (strong, nonatomic) IBOutlet UILabel *yourLabel;

现在在您的 TableViewController 中创建 customcell 的实例

YourTableViewController.h
@interface YourTableViewController : UITableViewController<

    {
        CustomCell *cell;
    }

并在 YourTableViewController.m

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

    cell = (CustomCell *) [tableView dequeueReusableCellWithIdentifier:nil];

    if (cell == nil) 
    {
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];

        for (id currentObject in topLevelObjects){
            if ([currentObject isKindOfClass:[UITableViewCell class]]){
                cell =  (CustomCell *) currentObject;
                break;

            }
        }
    }

cell.yourLabel.text = @"whatever you want to add";

现在,如果您想以其他方法更新 customcell 的标签,而不仅仅是这样做。

-(void)someMethod()
{
CustomCell *acell = (CustomCell *)[tableView cellForRowAtIndexPath:n];
acell.yourLabel.text = @"whatever you want to add.";
}
于 2013-01-05T07:49:27.750 回答
0

我想了一个不同的方法,目前我已经停止了 iOS 开发,因为我讨厌它,哈哈

不管怎样,谢谢大家这么快回复。

于 2013-01-20T00:43:18.430 回答