Splash screen with heavy codes in monotouch

青春壹個敷衍的年華 提交于 2019-11-28 09:02:32

问题


We now that in monotouch and for iPhone / ipad application when we want to have splash screen before app lunch we should to set launch image in info.plist file and it will show this image before application launches.

But what is the best way to implement a splash screen when we want to have a splash that runs some heavy codes in background and not disappear until these operations had not completed? Some codes like downloading application config from internet and saving theme that often used in splash screen.


回答1:


BTW, there is another solution: create main UIViewController, set it as Window.RootViewController immediately in AppDelegate's FinishedLaunching method. Then create and show modally splashViewController by this code:

    ...
    MainViewController.PresentModalViewController(splashViewController, true);
    ...

Hiding modal UIViewController is possible via calling code:

    DismissModalViewControllerAnimated(true);

Note that since iOS 6 PresentModalViewController becomes deprecated method. So, for many iOS versions compatibility you could code special method for showing modal UIViewController.

    public void ShowModalViewController (UIViewController vc, bool animated)
    {
        if (UIDevice.CurrentDevice.CheckSystemVersion(6, 0)) {
            MainViewController.PresentViewController(vc, animated, null);
        } else {
            MainViewController.PresentModalViewController(vc, animated);
        }
    }



回答2:


Possible solution:

  • Make a SplashViewController, which contains same image as app's splash image. Also it contains UIActivityIndicatorView;
  • In AppDelegate's FinishedLaunching method make new instance of SplashViewController, set it as window.RootViewController, call:
activityIndicator.StartAnimating();
  • Runs some heavy codes in background;
  • When it's done, set window.RootViewController to ViewController, which is app's starting point.


来源:https://stackoverflow.com/questions/14621022/splash-screen-with-heavy-codes-in-monotouch

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!