2011-06-30 5 views
2

UITabBarに追加しようとしていますが、タブバーコントローラではありません。ここで私がやろうとしたことがあります。 setItemsを呼び出すと、常にクラッシュします。何か間違ったことを指摘できますか?uitabbarとuitabbaritem

My_Accounts *my_AccountsVC = [[My_Accounts alloc] init]; 
Payments *paymentsVC = [[Payments alloc] init]; 
Transfer *transferVC = [[Transfer alloc] init]; 
NSArray *VCArray = [[NSArray alloc] initWithObjects:my_AccountsVC,paymentsVC,transferVC, nil]; 
[self.tabbar setItems:VCArray]; 

おかげ

答えて

2

itemsを見ると、あなたが渡していると思われるUIViewControllerのサブクラスではなく、UITabBarItemの配列をとります。

他の場所でビューコントローラを追跡し、UITabBarItemの配列を渡して、UITabBarのデリゲートのビューコントローラを処理する必要があります。

またはるかによく、UITabBarControllerを使用してください。

+0

私がしようとしているのは、タブバーを持っていて、私たちがタブバーコントローラに持っているもののように各アイテムごとに異なるビューを追加したいということです。私はtabbarItemにviewcontrollorを割り当てる方法を理解していませんでした。 – pa12

1

私はあなたがどのようにUITabBarController作品(documentation link)を誤解していると信じています。 viewControllersプロパティを使用してUIViewControllerUITabBarControllerに追加する必要があります。

あなたが持っている最後の行は次のようになります。

[tabBarController setViewControllers:VCArray];

UITabBarControllertabBarプロパティは読み取り専用です。それを設定することはできません。

あなたはUITabBarViewControllerなしUITabBardocumentation link)を持っている場合は、メソッドを使用する必要があります。

- (void)setItems:(NSArray *)items animated:(BOOL)animated 

はしかし、これらの項目はUIViewControllerのではありません!それらはUITabBarItemdocumentation link)のインスタンスです。これらをアレイに配置することで一度に設定することも、ビューコントローラごとに設定することもできます。いくつかのシステム項目(More、Favoritesなど)を使用するか、– initWithTitle:image:tag:を使用してカスタム項目を作成することができます。

1

コードが間違っているようです。私は推測する

[self.tabbar setItems:VCArray]; 

上記の行はUITabBarItemsの配列のパラメータを持つ必要があります。あなたは私が推測するUIViewControllerの項目を渡しました。 UITabbarItemsを作成し、その配列をsetItemsメソッドに渡す必要があります。

あなたは、以下のような何かをする必要があります

UITabBarItem *tabOne = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:0]; 
    UITabBarItem *tabTwo = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:1]; 

    NSArray *arrTabbarItems = [NSArray arrayWithObjects:tabOne,tabTwo, nil]; 

    [tabbar setItems:arrTabbarItems]; 

私はいつもUITabBarControllerを使用していて、それが何をするかわかりません。この助けを願っています。

+0

どのようにその特定のtabbaritemにビューを割り当てますか? – pa12