如何在加载服务器和运行指示器之前显示第二个视图?

时间:2010-08-31 09:43:56

标签: iphone objective-c

我制作了一个播放器xib并从播放列表xib转到那个播放器。问题是播放器视图有一堆数据要捕获和加载。当您单击播放列表上的按钮进入播放器视图时,在捕获所有数据之前不会显示播放器视图。

我希望它立即转到播放器视图,然后在加载数据时在播放器页面上显示活动指示器。

如何在单击按钮时显示播放器xib文件,然后在那里加载数据?

2 个答案:

答案 0 :(得分:0)

我建议您只将最必要的UI元素放入xib中,然后通过在viewcontroller中实现viewDidLoad(如果每次切换到播放器视图时需要重新加载)或loadFromNib(如果需要重新加载)来启动冗长的加载过程你需要它只运行一次,当它首次从xib加载时。)

此外,您可以将加载移动到单独的帖子中(请参阅:NSThread),您可以将通知发送到NSNotificationCenter。您的viewcontroller可以观察这些通知并更新一些状态指示器以向用户显示加载进度。

答案 1 :(得分:0)

您可以立即将nib和activityindicator加载到它上面,并且可以将NSOperationQueue和NSInvocationOperation与适当的选择器一起使用,该选择器将执行后台任务,因为此请求将异步运行。您可以对此invocationOperation使用KVO“isFinished”,该操作将在操作完成后通知您,之后您可以执行其他任务。