我在loadView方法中创建表,因为需要调整它的大小,并且在笔尖中创建单元以使其更易于编辑。

我不断收到低于在笔尖中创建表时未得到的错误。

UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath


我认为是导致错误的代码。

- (void)loadView
{
    // Set the size for the table view
    CGRect tableViewRect = CGRectMake(0, 30, 320, 436);

    // Create a table viiew
    UITableView *tableView = [[UITableView alloc] initWithFrame:tableViewRect style:UITableViewStyleGrouped];
    tableView.delegate = self;
    tableView.dataSource = self;

    // This view contains the table view and the status bar
    UIView *totalView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
    [totalView addSubview:tableView];
    self.view = totalView;
    [tableView release];

    [totalView release];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.section == 0) {
        if (indexPath.row == 0) {
            return cellOne;
        }
        else {
            return cellTwo;
        }
    }
    else if (indexPath.section == 1) {
        return cellThree;
    }
    else {
        return cellFour;
    }
}

最佳答案

如果覆盖-(void)loadView,将不加载nib文件。假设cellOne等是IBOutlet属性。如果要手动创建表视图,则应删除-(void)loadView方法,然后将代码移至-(void)viewDidLoad

关于iphone - iPhone表单元问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9027673/

10-13 03:50