我很难理解表的时间 视图已创建。
我有两个标签视图。在第二个标签视图中,我有datasource
的表
坚持表视图协议。
每当选择/单击表格数据源方法的第二个选项卡时
每次点击都会调用numberOfRowsInTableView
。
我正在使用xcode 4.2。
是否因为每个选项卡视图在选中选项卡时重新创建其视图?
我在这里错过了什么吗?
答案 0 :(得分:1)
我无法理解何时创建表格视图。
如果它在笔尖中,则在加载笔尖时创建它。
实际上,这取决于“创造”的含义。您将表视图放入Xcode中的nib时创建了它。保存时,Xcode会将该对象存档到笔尖中。
然后,在运行时,当您的应用加载nib时,Cocoa会取消归档表视图(以及nib中的其他所有内容)。 unarchiving是“创建”的时刻,之后表格视图存在于您的应用程序中。
每当选择/单击第二个选项卡时,每次单击都会调用表数据源方法
numberOfRowsInTableView
。
那时表视图已经存在。它会在它变得可见时发送该消息(以及其他数据源消息),无论它是否第一次变得可见。
如果切换到其他选项卡,表格视图没有理由显示任何内容,因此在模型更新后不会感到烦恼。
如果然后切换回来,使表视图可见,现在表视图有理由显示某些内容,因此它需要知道是否有任何更改,以便它可以显示模型的当前状态。因此,它在那时重新检查其数据源。
答案 1 :(得分:-1)
这取决于TableView的内容是动态的还是静态的。如果它是动态的,则在方法tableView:cellForRowAtIndexPath:
调用时创建。如果内容是静态的,则在加载视图时创建。请注意,tableView:cellForRowAtIndexPath:
被调用多次,它被称为数据源项的计数。希望有所帮助:)