在UITableViewController中,sectionOfRowsInSection中的section值始终为1

时间:2016-07-29 08:59:48

标签: ios xcode uitableview

我在tableview中有两个部分位于tableviewcontroller中 由于某种原因,方法numberOfRowsInSection中的section值始终为" 1"。这很奇怪,因为一切似乎都很好。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    // Return the number of sections.
    return 2;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.
    int i=section;
    if(section==0)
        return 1;
    else{
        return [self.flightDetailsArray count];
    }
}

在故事板中,我有一个包含两个部分的表

好的,再一次为你理解这个问题。观看此代码

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.

    NSLog(@"Section: %d",(int)section);
    if(section==0)
        return 1;
    else{
        return [self.flightDetailsArray count];
    }
}
在日志中我看到" 1"总是 那是什么?奇怪的

3 个答案:

答案 0 :(得分:0)

我不明白这背后的原因是因为我也是初学者,但据我所知,我认为你是第一次尝试返回1行而在下一步你要返回flightDetailsArray的计数,所以也许你可以通过以下步骤实现: -

insert into hello (username) values ('me')

答案 1 :(得分:0)

我认为您只想在第1部分中返回1行,然后在第2部分中返回flightDetailsArray中的对象数。如果是这种情况,那就这样做吧,

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 2;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    if(section==0)
        return 1;
    else{
        return [self.flightDetailsArray count];
    }
}

现在,如果flightDetailsArray中只有一个对象,则第二部分也可能会占一行。

请尝试打印NSLog(@"%@", [self.flightDetailsArray count])并查看对象编号。

答案 2 :(得分:0)

对不起,伙计们。问题是我使用了satic类型的tableview,但内部还有动态单元格。所以我没注意它。然后我将id更改为动态,并添加了动态部分,它工作得很好。抱歉花时间。