以编程方式创建的tableview委托不起作用

时间:2018-07-05 17:06:11

标签: ios objective-c uitableview delegates

可以说我在情节提要中创建了一个表视图,并称为“ tableViewJobList”,我想在tableViewJobList的每个单元格中生成一个表视图,因此我在cellForRowAtIndexPath中进行操作。

我的.h文件(tableViewJobList委托和数据源在情节提要中设置为viewcontroller)

@interface JobByAccountViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>

@property (weak, nonatomic) IBOutlet UITableView *tableViewJobList;
...
@end

我的.m文件

...

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    //realJoblist is my data array
    if (tableView == _tableViewJobList) {
        return [realJobList count];
    }
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    if (tableView == _tableViewJobList) {
        return 1;
    }
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (tableView == _tableViewJobList) {
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
        if (!cell) {
            cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
        }

        //each cell has a tableview
        UITableView *subTableView = [[UITableView alloc]initWithFrame:CGRectZero style:UITableViewStylePlain];
        subTableView.delegate = self;
        subTableView.dataSource = self;

        subTableView.frame = CGRectMake(0, 0, cell.bounds.size.width, cell.bounds.size.height);
        [cell addSubview:subTableView];

        return cell;
    }
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (tableView == _tableViewJobList) {
        NSLog(@"outer tableview");
    } else {
        NSLog(@"inner tableview");
    }
    ...
}

... 

在heightForRowAtIndexPath中,打印语句是否不应在else块中触发,因为这些是我以编程方式创建的表视图?

1 个答案:

答案 0 :(得分:0)

尝试一下, 您只需替换表出口名称即可。

ON DELETE CASCADE