在苹果的 MultipleDetailViews 示例中调用 numberOfRowsInSection 但未调用 cellForRowAtIndexPath
Posted
技术标签:
【中文标题】在苹果的 MultipleDetailViews 示例中调用 numberOfRowsInSection 但未调用 cellForRowAtIndexPath【英文标题】:numberOfRowsInSection called but not cellForRowAtIndexPath in MultipleDetailViews sample of apple 【发布时间】:2010-10-28 09:25:43 【问题描述】:如果您下载此示例 (ipad):http://developer.apple.com/library/ios/#samplecode/MultipleDetailViews/Introduction/Intro.html 然后在 numberOfRowsInSection 和 cellForRowAtIndexPath 设置断点,然后从横向开始,然后我有以下问题:
首先:应用程序在 numberOfRowsInSection 中出现两次 -> “为什么是 2 次?因为有 2 个部分.. 好吧,但是他们在哪里定义有 2 个部分?”
第二次:应用在 numberOfRowsInSection 中出现两次,然后调用 cellForRowAtIndexPath -> 这里没有问题......这是正常的
第三:当我更改为纵向模式并按下弹出按钮时,应用程序调用 numberOfRowsInSection 3 次并且从未调用 cellForRowAtIndexPath -> “为什么 3 次?他为什么不调用 cellForRowAtIndexPath”?
提前致谢!
【问题讨论】:
【参考方案1】:看了一眼代码,好像根视图控制器中只有一个部分,并且该部分有两行(tableView:numberofRowsInSection:
中的注释是错误的)。
为什么tableView:numberOfRowsInSection:
被多次调用,而tableView:cellForRowAtIndexPath:
没有被调用,这是任何人的猜测。由 tableview 的内部实现决定何时需要调用这些方法来布置其内容。如果你正确地实现了这些方法,那么它们被调用多少次都没关系。
【讨论】:
是的,它确实很重要,因为我的应用程序基于此示例,现在我与它有一些冲突。有时我的 cellForRowAtIndexPath 没有被调用,从而破坏了我的应用程序。很奇怪,它在横向模式下调用 cellForRowAtIndexPath 而不是在纵向模式下......所以当我看到问题也与样本有关时,我知道有错误。 没有人解释为什么会这样?以上是关于在苹果的 MultipleDetailViews 示例中调用 numberOfRowsInSection 但未调用 cellForRowAtIndexPath的主要内容,如果未能解决你的问题,请参考以下文章