带有重码的单色触摸屏

时间:2013-01-31 08:01:50

标签: ios iphone ipad xamarin.ios splash-screen

我们现在在monotouch和iPhone / ipad应用程序中,当我们想要在应用午餐之前有启动画面时,我们应该在info.plist文件中设置启动图像,它将在应用程序启动之前显示此图像。

但是,当我们想要在后台运行一些重码而不会消失直到这些操作没有完成时,实现启动画面的最佳方法是什么?一些代码,例如从互联网下载应用程序配置和保存在启动画面中经常使用的主题。

2 个答案:

答案 0 :(得分:3)

可能的解决方案:

  • 制作一个SplashViewController,其中包含与app的启动图像相同的图像。它还包含UIActivityIndicatorView;
  • AppDelegate的FinishedLaunching方法中创建SplashViewController的新实例,将其设置为window.RootViewController,然后致电:
activityIndicator.StartAnimating();
  • 在后台运行一些重码;
  • 完成后,将window.RootViewController设置为ViewController,这是应用的起点。

答案 1 :(得分:0)

BTW,还有另一种解决方案:创建主UIViewController,立即在AppDelegate的Window.RootViewController方法中将其设置为FinishedLaunching。然后通过以下代码创建并显示模态splashViewController

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

通过调用代码隐藏模态UIViewController

    DismissModalViewControllerAnimated(true);

请注意,因为iOS 6 PresentModalViewController已成为弃用方法。因此,对于许多iOS版本的兼容性,您可以编写显示模态UIViewController的特殊方法。

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