在iPhone上,在Xcode中,我可以通过使用这样的代码显示一个弹出视图,它覆盖了所有内容,包括Tab Bar等 -
[[[[UIApplication sharedApplication] delegate] window] addSubview:mySpecialView];
我试图在MonoTouch中做同样的事情,而我正在使用的代码就是这个 -
UIApplication.SharedApplication.Delegate.Window.AddSubview(mySpecialView);
......但这会崩溃。有谁知道我做错了什么?
感谢您的帮助。
答案 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; }
}