【问题标题】:Combining TabBar and Navigation Controllers Question结合 TabBar 和导航控制器问题
【发布时间】:2011-09-14 21:18:59
【问题描述】:

在我的 appDelagate 中,我有一个名为“FrontPage”的 UIViewController,它基本上是一个登录屏幕。一旦登录通过身份验证,它就会从超级视图中删除自己,并在 NC 中创建一个 tabbarcontroller、navigationcontroller(在 tabbar 内)和各种 UIViewController,并在 tab bar 中自行创建。然后我将 TabBarVC.view 推送到 windows subView。

它可以工作,但我希望在将 windows 子视图设置为 TabBarVC.view 后,我可以释放 TabBarViewController 以释放它,并且 appdelagate 将拥有 TabBarVC,但是当我这样做时它会崩溃。

当我输入这个时,我意识到我从来没有通过实际的 TabBarVC,只是视图,但有没有办法做到这一点?

另外,如果我完全搞砸了,请告诉我。

【问题讨论】:

    标签: iphone ios viewcontroller tabbarcontroller


    【解决方案1】:

    您应该将窗口的rootViewController 属性设置为您的UITabBarController 实例,类似于:

        // set the tab bar controller as our root view controller    
        [self.window setRootViewController:tabBarController];
    

    为了澄清,这将为您将 TabBarController、它的视图及其所有子视图添加到窗口的视图层次结构中,我建议您也将这种方法用于您的登录视图控制器。

    【讨论】:

      【解决方案2】:

      您可以让您的 UITabBarController 成为应用程序委托的IBOutlet(或者只保留您拥有的生成它的代码)。使其成为应用程序委托的保留属性,综合属性,然后在应用程序委托 (self.tabBarController = ...) 中创建 UITabBarController,或者如果您使用 xib,则从 UITabBarController 到 xib 中的应用程序委托建立 IBOutlet 连接.

      您可以将 UITabBarController 添加到应用程序的窗口,然后在其顶部添加 FrontPage UIViewController。从窗口中删除 FrontPage 后,UITabBarController 将已经出现在它的下方。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-21
        • 1970-01-01
        • 2018-03-24
        • 2021-05-14
        • 1970-01-01
        • 1970-01-01
        • 2020-09-24
        • 1970-01-01
        相关资源
        最近更新 更多