2012-05-03 14 views
9

アプリケーションの最初のタブバーの選択を変更する際に問題が発生しました(つまり、一番左のタブではなく、アプリの起動時に中央のタブが選択されます)。アプリはストーリーボードを使用し、タブバーコントローラーは後でストーリーボードメソッドを介して開発時に追加されました。初期タブバーの選択をプログラムで変更する方法

tabBarController.selectedIndex = 1; 

(私はカスタムビューコントローラが私のタブバー、単にデフォルトUITabBarControllerに接続されていないため)上記のコードは動作しません:

は、いくつかのグーグルを完了し、多くの異なるリソースを見てアップルのテンプレートTab Bar Applicationを使って最初に作成されたものではないアプリケーションの解決策を見つけていない。

+0

は、このプロジェクトの初期ビューコントローラですか、それは別のビューコントローラからプッシュされますか? – lnafziger

+0

タブバーコントローラは初期ビューコントローラです。 – LazerLex

答えて

28

でこれを使用してみてください。 AppDelegate.mで

、あなたのapplication:didFinishLaunchingWithOptions:メソッドに次の行を追加します。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Override point for customization after application launch. 

    // Select the left-most tab of our initial tab bar controller: 
    UITabBarController *tabBar = (UITabBarController *)self.window.rootViewController; 
    tabBar.selectedIndex = 0; 
    return YES; 
} 
+2

あなたは素晴らしいです。完璧に働いた。私はAppDelegateでそれをやらなければならないと思います。これは、最初のView Controllerだからです。ありがとう。 – LazerLex

+1

将来参照するために、同様のことを行う必要があり、最初のView Controllerではない状況では、読み込まれる前のビューで 'prepareForSegue'をオーバーライドしてそこから設定します。 – lnafziger

1

tabBar setSelectedItem:は、これが最初のビューコントローラであり、サブクラスではありませんので、あなたはappDelegateでこれを設定する必要があなたのviewDidLoad

+0

私は(viewDidLoadメソッドで)私のタブバーのための特定のビューコントローラを持っていないので、動作しません。私は自分のタブバー用に作成されたコンセントを持っていません。ストーリーボードで作成されたデフォルトです。 – LazerLex

+0

私はview controller.hと.mを追加し、それを私のTabBarControllerに接続しました。 UITabBarControllerコンセントを作成し、選択したインデックスを使用しました。 (UITabBarコンセントを作成してsetSelectedItemを使用して)何も言わずに試してみましたが、まだ何もしていません。/ – LazerLex

関連する問題