【问题标题】:iOS Loading view upon app launch应用启动时的 iOS 加载视图
【发布时间】:2015-04-26 13:53:19
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: ios objective-c xcode swift launch


    【解决方案1】:

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

    https://github.com/jdg/MBProgressHUD

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

    然后您就可以使用新的根目录运行了。要更改根目录,您可以在应用委托实例中使用以下内容。

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

    【讨论】:

      【解决方案2】:

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

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

      由于您的核心能力在您的帖子中并不清楚,这里有一篇 NSHipster 文章讨论了这个概念的使用:http://nshipster.com/nsnotification-and-nsnotificationcenter/

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-08-07
          • 2018-07-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多