添加UITabBarController时出错

我正在使用Monotouch C#编写一个带有许多不同屏幕的iPhone应用程序。 为了简单起见,我将仅描述一些导致我遇到问题的控制器的屏幕。

我遇到的问题是,当我创建一个inheritance自UITabBarController的类时,我收到此错误消息:

应用程序窗口应在应用程序启动结束时具有根视图控制器

在我的AppDelegate类中,我初始化了一个UIViewController和一个UINavigationController。 我在UIWindow对象上设置我的RootViewController以使用这样的导航控制器:

var splashController = new SplashController(); // UIViewController _navigationController = new UINavigationController(splashController); ... _window = new UIWindow(UIScreen.MainScreen.Bounds); _window.RootViewController = _navigationController; _window.MakeKeyAndVisible(); 

到目前为止,我还没有遇到运行应用程序的问题。 但是我创建了一个inheritance自UITabBarController的新类,我收到了上面描述的错误消息。 如果需要,我可以将代码发布到它但我也尝试使用从UITabBarControllerinheritance的空类运行我的应用程序,但仍然收到相同的错误消息。

即使通过注释掉或删除PushViewController调用从未在我的代码中调用类,我仍然无法运行应用程序。

对标签栏控制器的调用最终将如下所示:

 SplashController (UIViewController) > push > HomeController (UIViewController) > push > MenuController (DialogViewController) > push > StatsController (UITabBarController) 

我猜这里有一些额外的东西,我在这里失踪但是在谷歌搜索并搜索后我无法找到问题的答案。 谢谢你的帮助

如果您使用的是UITabBarController,它应该如下所示:

 window = new UIWindow (UIScreen.MainScreen.Bounds); var viewController1 = new FirstViewController (); var viewController2 = new SecondViewController (); tabBarController = new UITabBarController (); tabBarController.ViewControllers = new UIViewController [] { viewController1, viewController2, }; window.RootViewController = tabBarController; window.MakeKeyAndVisible (); 

UITabBarController应该是RootViewController。

我猜这个链接可能对你有帮助

应用程序在应用程序启动结束时应具有根视图控制器

有时候,当我们在plist中没有提到初始视图控制器时会发生这种情况。

Interesting Posts