0

UITableViewCell が xib ファイルである UITableViewController を作成しようとしています。Xib ファイルは空です (0 コントロール) すべてのコントロールはこのようにプログラムで作成されます

- (id) initWithTitle: (NSString*)p_title andImage: (UIImage*)p_image
{
    //adding checkbox & title
    MMCheckbox* myCheckbox = [[MMCheckbox alloc] initWithTitle:p_title andHeight:20];
    myCheckbox.frame = CGRectMake(self.frame.size.width - myCheckbox.frame.size.width -15,20, myCheckbox.frame.size.width, 20);
    myCheckbox.flat = YES;
    myCheckbox.strokeColor = [UIColor whiteColor];
    myCheckbox.checkColor = [UIColor magentaColor];
    myCheckbox.uncheckedColor = [UIColor clearColor];
    myCheckbox.tintColor = [UIColor clearColor];
    [self addSubview:myCheckbox];

    //adding the image
    UIImageView* imageView = [[UIImageView alloc] initWithFrame:CGRectMake (15, 10, 20, 20)];
    [imageView setImage: p_image];

    return self;
}

xib ファイルに UITableViewCell を配置し、そのクラスを自分のクラス MMCheckboxTableViewCell に設定しました

ここに画像の説明を入力

私のtableViewControllerでは、NIBからロードするセルを作成しています

- (UITableViewCell *)tableView:(UITableView *)p_tableView cellForRowAtIndexPath:(NSIndexPath *)p_indexPath
{
//create a UI tableViewCell
    UITableViewCell* cell = [p_tableView
                             dequeueReusableCellWithIdentifier:@"comboBoxCell"];
    if(cell == nil)
    {
        UIViewController *temporaryController = [[UIViewController alloc] initWithNibName:@"MMComboBoxTableCell" bundle:nil];
        // Grab a pointer to the custom cell.
        cell = (MMComboBoxTableCell *)temporaryController.view;
    }
}

私は同じ質問で多くの投稿を見て、これに従ってすべてが正しいことを確認しまし

何が足りないか教えてください。

4

1 に答える 1

1

私の問題は、XIB のロード方法にありました。

以下を変更することにより:

UIViewController *temporaryController = [[UIViewController alloc] initWithNibName:@"MMComboBoxTableCell" bundle:nil];

これに:

MMComboBoxTableCell* temporaryController = [[[NSBundle mainBundle] loadNibNamed:@"MMComboBoxTableCell" owner:self options:nil] objectAtIndex:0];

問題が解決しました。

于 2013-09-10T00:09:34.143 に答える