0

从带有表格视图的视图控制器加载详细视图上的内容会更有效吗?

我应该将变量从didSelectRowAtIndexPath:方法传递到详细视图,还是更好地对服务器进行 JSON 调用并将数据加载到详细视图上的字典中?

当我通过该didSelectRowAtIndexPath:方法将数据从视图控制器传递到详细视图时,我注意到一些滞后

谢谢你的帮助

4

4 回答 4

0

您的问题并不完全清楚数据来自哪里。我假设因为您提到了一个 JSON 调用,当您在表格视图上选择一个项目时,您需要进行 Web 服务调用以获取有关该项目的其他信息,然后再显示您的详细信息视图。

如果是这种情况,那么您应该在详细视图控制器中进行 Web 服务调用并加载数据。Apple 的界面指南建议您这样做以呈现响应性。在点击表格视图中的行后,将立即显示详细视图控制器。您可以在详细视图中使用活动指示器或加载图形,让用户知道正在下载其他信息。

这比等待数据下载然后才触发视图转换要好得多。

于 2013-08-05T09:47:37.007 回答
0

使用didSelectRowAtIndexPath:方法将 id 或任何唯一变量发送到detailedViewController... 并detailedViewController使用此唯一变量或 id 从 json 中获取数据,viewDidLoad:或者viewWillAppear:这是发布数据的简单和最佳方式detailedViewController

于 2013-08-05T09:53:11.920 回答
0

如果您在表格视图控制器本身中已经拥有完整的数据,那么您可以传递一个对象而不是传递太多变量。只需创建一个域类,声明变量和对象,设置属性和综合。现在将此域类对象传递给您的控制器。但是,如果您在表格视图中有一些数据,并且您需要再次调用服务器以获取更多详细信息,您可以只传递 id 并仅在详细视图上进行服务器调用。

于 2013-08-05T10:28:49.673 回答
0
DetailView = [[DetailViewController]alloc]init];
 DetailView.strValue = sValue.
[self.navigationController pushViewController:DetailView animated:Yes];

DetailView 是您详细视图的对象。导入此类,然后使其实例像上面一样,strValue 是详细视图中的字符串,sValue 是当前视图控制器中的字符串,其中有一些值传递给其他视图。

也检查这个链接

于 2013-08-05T10:31:08.437 回答