我在创建新的UIWindow
并将其设为关键且可见后约5或10秒内收到此错误。
unexpected nil window in _UIApplicationHandleEventFromQueueEvent, _windowServerHitTestWindow: (null)
然后它将我带回旧的UIWindow
。我的代码如下:
actionButton.TouchUpInside += delegate
{
var window = new UIWindow();
AppDelegate.NavController = new UINavigationController(new MainViewController());
window.RootViewController = AppDelegate.NavController;
window.Frame = UIScreen.MainScreen.Bounds;
window.MakeKeyAndVisible();
};
我真正想做的就是从层次结构中断,并通过UINavigationCOntroller
启动一堆新的视图控制器。让我知道,谢谢!
答案 0 :(得分:0)
var window = new UIWindow();
您的UIWindow
是一个局部变量,您需要在某处保留对它的引用,使其成为类级别var并且您的麻烦应该消失(与您的静态AppDelegate.NavController
相同)。
作为快速测试,只需在GC.Collect();
之后的某处放置一个window.MakeKeyAndVisible()
,然后开始使用MainViewController
上的控件,等待开始的乐趣。 ; - )
更新:
我刚刚意识到您重复使用当前窗口中的CGRect
,创建一个新的,以便在您更改屏幕方向,GLES大小等时进行清晰分离。
window.Frame = new CGRect(0, 0, UIScreen.MainScreen.Bounds.Width, UIScreen.MainScreen.Bounds.Height + 100);