UITableViewController 中 numberOfRowsInSection 中的 section 值始终为 1
Posted
技术标签:
【中文标题】UITableViewController 中 numberOfRowsInSection 中的 section 值始终为 1【英文标题】:section value is always 1 in numberOfRowsInSection in UITableViewController 【发布时间】:2016-07-29 08:59:47 【问题描述】:我在 tableview 中有两个部分位于 tableviewcontroller 内 由于某种原因,方法 numberOfRowsInSection 中的部分值始终为“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” 那是什么?很奇怪
【问题讨论】:
这很不寻常。你能证明你怎么知道它永远不是0
吗?
我使用调试器。我什至可以记录它。但无论如何它总是“1”
我怀疑情况是否如此,所以请您提供更多证据,以便我们查看您是否在调查中遗漏了什么。
我可以提供故事板屏幕,还要注意它是一个 UITableViewController
我会尝试重新创建这些部分,可能是 xcode 的一些错误。我试图清理项目,没有帮助。
【参考方案1】:
我不明白这背后的原因,因为我也是初学者,但就我而言,我认为你第一次尝试返回 1 行,下一步你想返回flightDetailsArray 的计数,所以也许你可以通过这些步骤来实现:-
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
// Return the number of rows in the section.
static int i=0
if(i==0)
return 1;
i++;
else
return [self.flightDetailsArray count];
【讨论】:
我希望第一部分包含 1 行,第二部分 [self.flightDetailsArray count] 但由于某种原因部分始终为“1” numberOfRowsInSection:(NSInteger)section 我的意思是这个参数方法。 你为什么不试试我的回答:) 因为它和我一样吗?而且它不应该这样做【参考方案2】:我认为您只想在第一部分返回 1 行,然后在第二部分返回 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
中只有一个对象,您的第二部分可能也将保留 1 行。
请尝试打印NSLog(@"%@", [self.flightDetailsArray count])
并查看对象编号。
【讨论】:
【参考方案3】:对不起,伙计们。问题是我使用了 satic 类型的 tableview,但内部也有动态单元格。所以我没注意。然后我将 id 更改为动态,并添加了动态部分,它工作得很好。抱歉耽误您的时间。
【讨论】:
以上是关于UITableViewController 中 numberOfRowsInSection 中的 section 值始终为 1的主要内容,如果未能解决你的问题,请参考以下文章
在 UITableViewController 中没有调用 cellForRowAtIndex?
UITableViewController 在弹出窗口中显示不同,为啥?
在 UINavigationController 中显示 UITableViewController