2012-02-21 24 views
0

タブバコントローラからすべてのビューコントローラを完全に削除するかどうか、実行時に新しいビューコントローラ をtababrコントローラに追加したいのですか? folowingとしてやっている、それは出力を与えていないのですか?例のselfが所与と仮定すべてのビューコントローラをタブバコントローラから完全に削除する

UIViewController *thisIsTheViewControllerIWantToSetNow; 
int indexForViewControllerYouWantToReplace; 
NSMutableArray *tabbarViewControllers = [self. tabController.viewControllers mutableCopy]; 
    [tabbarViewControllers removeAllObjects]; 



self.tabController.viewControllers = [NSArray arrayWithObjects:self.moreNavController, self.logInNavController, nil];; 
+0

''そのtabbar'プロパティが定義されている。この例ではself'、そしてどのような値上記のコードが実行されると、 'tabbar'プロパティが含まれていないとは何ですか? – Jonah

+0

編集コードを参照してください – nameless

答えて

0

UITabBarControllerのインスタンスは、直接そのtabbarを操作しようとすることは適切ではないです。代わりにviewControllersプロパティを設定します。

タブバーこのコントローラに関連付けられたタブバービュー:UITabBarControllerドキュメント状態として 。 (読み取り専用)

@property(アトミック、読み取り専用)UITabBar *タブバー

ディスカッションあなたは この プロパティに格納されているUITabBarオブジェクト自体を操作しようとすることはありません

。そうしようとすると、タブバービューは の例外をスローします。タブバーインターフェイスの項目を設定するには、 は、1つまたは複数のカスタムビューコントローラを viewControllersプロパティに割り当てる必要があります。タブバーは、指定したビューコントローラから必要なタブバー の項目を収集します。

https://developer.apple.com/library/ios/documentation/uikit/reference/UITabBarController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006931-CH3-SW4

+0

私は理解していませんでした。私はappdelegate.mファイルで試しました。 @property(非原子、読み取り専用)UITabBarController * tabController;それは働いていない...。 – nameless

+0

何が問題なのですか?あなたは何を達成しようとしていますか?何を試しましたか?予期せぬ結果がありましたか? 「うまくいかない」とはどういう意味なのか推測しないでください。 表示されているタブバーコントローラーへの参照と、現在の内容の代わりに表示したいビューコントローラーが必要です。あなたはそれらのどちらかを持っていますか? また、どのオブジェクトがタブバーコントローラの内容を変更するかを決定する必要があります。それはアプリケーションデリゲートですか? – Jonah

関連する問題