いくつかの重いコードが実行されるまで表示されるカスタム スプラッシュを表示したい場合は、splashviewcontroller を使用できることがわかっています (詳細については、重いコードのモノタッチを使用したスプラッシュ画面を参照してください。私はこのコードをこの提案に使用し、うまく機能します。アプリケーションがいつsplashviewcontrollerに行き、重いコードがアプリケーションの開始点に行くように設定する方法を完了したかわかりません。
public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
window = new UIWindow (UIScreen.MainScreen.Bounds);
SplashViewController splash= new SplashViewController ();
window .RootViewController = splash;
window.MakeKeyAndVisible ();
return true;
}
スプラッシュビューコントローラー.csで
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
UIActivityIndicatorView uai= new UIActivityIndicatorView (UIActivityIndicatorViewStyle.Gray);
View .AddSubview (uai);
uai.StartAnimating ();
splashImage .StartAnimating ();
ThreadPool.QueueUserWorkItem (o =>heavyCode ());
}
public void heavyCode ()
{
int j=0;
for (int i=0; i<1000000; i++) {
j++;
}
//Should go to start point of application :-S
}
私はモノタッチの新しい開発者で、おそらくこれはダミーの質問でしたが、数日間混乱していました.
HeavyCode メソッドを次のように変更しました。
public void heavyCode ()
{
int j=0;
for (int i=0; i<1000000; i++) {
j++;
}
HomeScreen homescreen = new HomeScreen ();
App.Delegate .Window .RootViewController = homescreen ;
}
そして、私はこの例外を得ました:
FATAL UNHANDLED EXCEPTION: MonoTouch.Foundation.ModelNotImplementedException