iOS 应用启动时加载视图

iOS Loading view upon app launch

对于我的应用程序,我希望该应用程序在进入主页之前动画加载进度(加载本地 CoreData,并与游戏中心同步)。

所以我在 ViewDidLoad() 中创建了一个 LoadingView 作为我的根视图,在本地加载和游戏中心加载完成后,我然后推送到主视图。

我很确定这是错误的方法,因为我收到了这个警告: 不鼓励在分离的视图控制器上呈现视图控制器

你能告诉我什么是好的做法吗?

我会使用 NSNotificationCenter 创建一个在加载完成时听到事件的观察者:

您更有可能将观察者放置在 ViewDidLoad 中,以便删除您在 CoreData 加载开始时实例化的 UIView。您很可能需要自己构建一个微调器视图。我通常使用 QuartzCore 来执行此操作并确保它与我的应用程序的其余部分匹配。

因为你的post并不清楚你的核心能力,这里有一篇 NSHipster 文章讨论了这个概念的使用:http://nshipster.com/nsnotification-and-nsnotificationcenter/

将你的第二个视图控制器设置为根视图控制器。所以你不会得到任何警告等。 [UIApplication sharedApplication]delegate] window].rootviewController=secondViewCont; 唯一的问题是不会有任何页面导航动画。您可以通过委托或通知来观察您的加载过程。

我建议您创建一个非常简单的初始根视图,并使用 HUD 显示您的进度。我用这个:

https://github.com/jdg/MBProgressHUD

初始化所有内容后,放下 HUD 并将根视图控制器替换为使用故事板加载的新视图控制器。我建议您向应用程序委托添加一个方法,您可以调用它来为您进行切换。

然后你就关闭了 运行 新的 root。要更改根目录,请在应用程序委托实例中使用以下内容。

self.newController = <load with storyboard>;
self.window.rootViewController = self.newController;
[self.window makeKeyAndVisible];