我正在编写一个 MonoTouch 应用程序,并且正在尝试将 UISegmentedControl 添加到视图(以编程方式而不是通过 IB)。我不断收到以下错误消息:
Application windows are expected to have a root view controller at the end of application launch
这很奇怪,因为 UISegmentedControl 与 Window 根视图控制器无关。最后,我将代码一直减少到变量的初始化:
// This code appears in a class which inherits from UIView
var segmentedControl = new UISegmentedControl ();
我尝试将此代码放在从 UIViewController 继承的类中,并且发生了相同的行为。我什至尝试将它放入 AppDelegate 但仍然显示相同的错误。
注意:运行此代码时,我正在 iPad 设备上进行调试
在玩耍之后,我最终注释掉了我拥有的一个随机 UIViewController 类,并且应用程序运行良好。我已经尝试注释掉各种不同的 UIViewControllers 并且每次它运行良好,所以没有一个视图控制器似乎是问题所在。就好像我已经达到了我可以拥有的视图控制器数量的某种限制。
这可能吗?如果不是,问题可能是什么?
PS 这可能与我在这里提出的先前问题有关:添加 UITabBarController 时出错
编辑
在 FinishedLaunching 方法中,我有以下代码:
_window = new UIWindow(UIScreen.MainScreen.Bounds);
_window.RootViewController = _navigationController;
_window.MakeKeyAndVisible();
我在 iOS 6.1 版中运行它。
从那以后,我尝试注释掉任何类,而不仅仅是从 UIViewController 继承的类,并且应用程序运行良好。可能是内存问题
编辑 2
我尝试从受影响的地方删除视图和控制器,然后再次构建它们,并将其深入到视图从 UIView 继承的时间。如果我在 UIViewController 中有该代码和一个将用作 UIView 的类(但实际上不是从它继承),那么应用程序将毫无问题地运行。一旦我从 UIView 继承该类,我就会收到上述错误消息。