1

私のappDelagateには、基本的にログイン画面である「FrontPage」と呼ばれるUIViewControllerがあります。ログインが認証されると、それ自体がスーパービューから削除され、tabbarcontroller、navigationcontroller (tabbar 内)、およびさまざまな UIViewControllers が NC に作成され、タブ バーに独自に作成されます。次に、TabBarVC.view を Windows サブビューにプッシュします。

それは機能しますが、WindowsサブビューをTabBarVC.viewに設定した後、TabBarViewControllerを解放してロックを解除し、appdelagateがTabBarVCを所有することを望んでいましたが、そうするとクラッシュします。

これを入力していると、実際の TabBarVC を渡すことはなく、ビューだけを渡さないことに気付きましたが、これを行う方法はありますか?

また、これを完全に FUBAR した場合はお知らせください。

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をアプリ デリゲートにすることができます (または、それを生成するコードを保持するだけです)。これをアプリ デリゲートの保持プロパティにして、プロパティを合成し、アプリ デリゲートで UITabBarController を作成するか ( self.tabBarController = ...)、xib を使用する場合は、xibIBOutletで UITabBarController からアプリ デリゲートへの接続を作成します。

アプリのウィンドウに UITabBarController を追加し、その上に FrontPage UIViewController を追加できます。ウィンドウから FrontPage を削除すると、その下に UITabBarController が既に存在します。

于 2011-09-14T22:42:26.750 に答える