1

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

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

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

另外,如果我完全 FUBAR'd 让我知道。

4

2 回答 2

0

您应该将窗口的rootViewController属性设置为您的UITabBarController实例,如下所示:

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

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

于 2011-09-14T23:12:46.807 回答
-1

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

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

于 2011-09-14T22:42:26.750 回答