繁体   English   中英

iPhone-在viewDidAppear之前调用numberOfRowsInSection

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM