[英]iphone - numberOfRowsInSection being called before viewDidAppear
这可能很正常,但是我对Objective-C还是陌生的。 我有一个带有两个视图控制器的应用程序,两个都是表视图。 单击一行后,我将第二个视图加载到堆栈的顶部,并通过其属性之一传递参数。 在第一个视图(导航控制器默认加载)上,首先调用viewDidAppear函数,该函数从URL打开XML文件,为每个节点构建一个对象,并将所有对象推入数组。 完成此操作后,将调用numberOfRowsInSection,它返回数组的计数,一切正常。 在另一个视图上,首先加载numberOfRowsInSection,然后调用viewDidAppear。 我真的是iphone的新手,我也不知道为什么会这样。
谢谢!
这很正常。 整个视图完成加载并变为可见后,将调用viewDidAppear
。 这包括UITableView
。 表格视图又需要numberOfRowsInSection
函数进行初始化。
在UITableView
加载之前,您有三个选项可以执行代码:
1)将您的代码放在-viewWillAppear
-有时可能会不稳定
2)子类化UIViewController(可能您已经在这样做)并创建一个自定义-init
函数来处理您的设置
3)将您的初始化代码放在-numberofRowsInSection
。 这始终是要调用的UITableViewDataSource
的第一个方法。 它有点黑,但在实践中效果很好。
也许您应该考虑将代码移至-viewWillAppear
或-viewDidLoad
。
谢谢大家抽出宝贵的时间回复! 我发现了问题。 作为xcode / iphone / mvc的新手,我忘记了将视图连接到IBOutlet对象。 我一生的几个小时我再也回不到。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.