Monotouch - 弹出一切

Som*_*Man 1 modal-dialog popup xamarin.ios

在iPhone上,在Xcode中,我可以通过使用这样的代码显示一个弹出视图,它覆盖所有内容,包括Tab Bar等.

[[[[UIApplication sharedApplication] delegate] window] addSubview:mySpecialView];
Run Code Online (Sandbox Code Playgroud)

我试图在MonoTouch中做同样的事情,而我正在使用的代码就是这个 -

UIApplication.SharedApplication.Delegate.Window.AddSubview(mySpecialView);
Run Code Online (Sandbox Code Playgroud)

......但是这个崩溃了.有谁知道我做错了什么?

谢谢你的帮助.

pou*_*pou 7

你没有说它是如何崩溃的 - 但我认为你有一段ModelNotImplementedException时间使用该Window属性,因为它没有默认实现(并且用于故事板).

您可以实现它以返回window(自动生成的)AppDelegate(AppDelegate.cs文件)的字段,也可以将相同的变量公开为(静态)字段.

例如,默认生成的代码

UIWindow window;

public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
    window = new UIWindow (UIScreen.MainScreen.Bounds);
    window.RootViewController = new UINavigationController ();
    window.MakeKeyAndVisible ();
    return true;
}
Run Code Online (Sandbox Code Playgroud)

会成为:

static UIWindow window;

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

static public UIWindow Window {
    get { return window; }
}
Run Code Online (Sandbox Code Playgroud)