2011-06-30 41 views
2

我想將UITabBarItems添加到UITabBar而不是tabbar控制器。這是我試圖做的。當我調用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,它需要一個UITabBarItem s的數組,而不是UIViewController你看起來正在傳遞的子類。

您必須跟蹤其他地方的視圖控制器並傳遞一個UITabBarItem s的數組,並處理UITabBar的委託中的視圖控制器。

或者更好,請使用UITabBarController

+0

我想要做的是我有一個tabbar,並希望爲每個項目添加不同的視圖,如我們在tabbar控制器中所擁有的。我沒有弄清楚如何爲tabbarItem分配一個viewcontrollor – pa12

1

我相信你是誤解如何UITabBarController作品(documentation link)。您必須使用viewControllers屬性將UIViewController添加到UITabBarController

你有最後一行應改爲:

[tabBarController setViewControllers:VCArray];

UITabBarControllertabBar屬性爲只讀。你不能設置。

如果你有一個UITabBardocumentation link)沒有UITabBarViewController,那麼你將需要使用方法:

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

然而,這些項目都沒有UIViewController小號!它們是UITabBarItemdocumentation link)的實例。您可以通過將它們放入數組中來將它們全部設置爲一次,也可以將它們設置爲每個視圖控制器。您可以使用多個系統項目(更多,收藏夾等),或者您可以使用– 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