Monotouch - 弹出一切

时间:2012-09-11 14:44:42

标签: xamarin.ios popup modal-dialog

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

[[[[UIApplication sharedApplication] delegate] window] addSubview:mySpecialView];

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

UIApplication.SharedApplication.Delegate.Window.AddSubview(mySpecialView);

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:7)

您没有说它是如何崩溃的 - 但我认为您在使用ModelNotImplementedException属性时拥有Window,因为它默认情况下未实现(并且适用于故事板)。

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

E.g。默认生成的代码

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 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; }
}