我们现在在 monotouch 和 iPhone / ipad 应用程序中,当我们想在应用程序午餐前有启动画面时,我们应该在 info.plist 文件中设置启动图像,它会在应用程序启动之前显示此图像。
但是,当我们想要在后台运行一些繁重的代码并且在这些操作尚未完成之前不会消失的启动画面时,实现启动画面的最佳方式是什么?一些代码,例如从 Internet 下载应用程序配置和保存在启动画面中经常使用的主题。
我们现在在 monotouch 和 iPhone / ipad 应用程序中,当我们想在应用程序午餐前有启动画面时,我们应该在 info.plist 文件中设置启动图像,它会在应用程序启动之前显示此图像。
但是,当我们想要在后台运行一些繁重的代码并且在这些操作尚未完成之前不会消失的启动画面时,实现启动画面的最佳方式是什么?一些代码,例如从 Internet 下载应用程序配置和保存在启动画面中经常使用的主题。
可能的解决方案:
SplashViewController
,其中包含与应用程序的启动图像相同的图像。它还包含UIActivityIndicatorView
;AppDelegate
的 FinishedLaunching 方法中创建 的新实例SplashViewController
,将其设置为window.RootViewController
,调用:activityIndicator.StartAnimating();
window.RootViewController
为 ViewController,这是应用程序的起点。顺便说一句,还有另一种解决方案:创建 main ,在 AppDelegate 的方法UIViewController
中将其设置为立即。然后通过以下代码以模态方式创建和显示:Window.RootViewController
FinishedLaunching
splashViewController
...
MainViewController.PresentModalViewController(splashViewController, true);
...
UIViewController
通过调用代码可以隐藏模态:
DismissModalViewControllerAnimated(true);
请注意,由于 iOS 6PresentModalViewController
成为不推荐使用的方法。因此,对于许多 iOS 版本的兼容性,您可以编写特殊方法来显示 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);
}
}