1

在 iPhone 上,在 Xcode 中,我可以使用这样的代码显示一个覆盖所有内容的弹出视图,包括标签栏等 -

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

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

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

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

谢谢你的帮助。

4

1 回答 1

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

会成为:

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; }
}
于 2012-09-11T15:00:10.033 回答