【问题标题】:Error when adding UITabBarController添加 UITabBarController 时出错
【发布时间】:2013-07-19 08:32:18
【问题描述】:

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

我遇到的问题是,当我创建一个继承自 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();

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

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

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

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

我猜我在这里缺少一些额外的东西,但是在谷歌搜索和四处搜索之后,我找不到我的问题的答案。感谢您的帮助

【问题讨论】:

  • 我试图理解并重现您的问题,但到目前为止失败了。您可能创建了一个触发问题的极简项目,并分享它。
  • 很抱歉问这个问题,但我必须这样做。你确定 UINavigationController 的构造函数返回一个值并且 _navigationController 不为空吗?
  • 是的,它肯定已经初始化了

标签: c# iphone ios xamarin.ios uitabbarcontroller


【解决方案1】:

如果您使用的是 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。

【讨论】:

    【解决方案2】:

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

    Applications are expected to have a root view controller at the end of application launch

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

    【讨论】:

    • 感谢您的链接,但那里的一切似乎都很好
    猜你喜欢
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多