2017-02-10 8 views
2

これは本当にループのために私を投げている。 Visual Studio用のXamarinをインストールし、空のプロジェクトを作成してMacに接続しました。私はiPhoneをシミュレートし、私が見て考えるのは絶対にどこにもありませんMain.csクラスのUIApplication.Mainへの呼び出しアプリケーション起動の最後にXamarin iOSのルートビューコントローラ

using UIKit; 

namespace testapp 
{ 
    public class Application 
    { 
     // This is the main entry point of the application. 
     static void Main(string[] args) 
     { 
      // if you want to use a different Application Delegate class from "AppDelegate" 
      // you can specify it here. 
      UIApplication.Main(args, null, "AppDelegate"); 
     } 
    } 
} 

によって発生されている

Foundation.MonoTouchException: Objective-C exception thrown. Name: NSInternalInconsistencyException Reason: Application windows are expected to have a root view controller at the end of application launch 

をこのエラーを取得する - 誰もがに遭遇しましたこれの前に?

+0

XamarinはあなたのiOSターゲットのコードを書く場所を提供しますか?私たちは一般にAppDelegateのアプリケーション内でウィンドウ状態を設定しました:didFinishLaunchingWithOptions:メソッド。私はXamarinが何を提供しているのかは分かっていませんが、あなたが検索するのにもっと興味深いものを得るかもしれないと考えました。 –

+0

AppDelegate.csのコードを共有できますか? – Darshana

答えて

2

プロジェクトではAppDelegateが正しく実装されていません。 iOSは、アプリケーションを初期化するために、ルートコントローラ(UIViewController)が何であるかを知る必要があります。それを設定するのは、AppDelegateクラスです。これは、アプリケーションの初期化時に空のビューコントローラを追加します:

[Register ("AppDelegate")] 
public partial class AppDelegate : UIApplicationDelegate 
{ 
    UIWindow window; 

    public override bool FinishedLaunching (UIApplication app, NSDictionary options) 
    { 
     window = new UIWindow (UIScreen.MainScreen.Bounds); 
     window.RootViewController = new UIViewController(); 
     window.MakeKeyAndVisible(); 

     return true; 
    } 
} 
0

私は最近、既存のプロジェクトをインポートするときに同じ問題が発生しました。私は同じエラーに直面し、どのような私の場合は間違っていたことは、私は非同期で実行することである

MainPage = new ContentPage(); 
0

App.csMainPageがxleonによってAppDelegateのために言及した変化とともに私のためにそれを固定設定/前のメソッドを待ちますメインページが設定されました。だから、私はMainPage = new MainPage()を移動しました。 InitializeComponent()の直後。それは今働きます。

関連する問題