2011-07-27 74 views
1

我想添加一個UIButton到UITabBar我用下面的代碼iPad應用:添加的UIButton到UITabBar

TabBarAppDelegate *delegate = (TabBarAppDelegate *)[[UIApplication sharedApplication] delegate]; 
UITabBarController *tabbar = (UITabBarController *)delegate.window.rootViewController; 

UIButton *b = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 20, 20)]; 
[tabbar.view addSubview:b]; 

tabbar是確定並引用到正確的TabBar項目(比如,我可以切換活動標籤代碼如下:[tabbar setSelectedIndex:1];)。

此代碼由其他一些自定義按鈕調用。雖然有日誌中沒有錯誤,按鍵上不使用TabBar :(

表明我在做什麼錯的,什麼是添加的UIButton到UITabBar正確的方式:)下面是一個例子:

http://gyazo.com/99fc0df0ed47dd6be91b558161cab4f9.png

在此先感謝!

編輯:好吧,如果我堅持使用UIToolbar選項,那麼在視圖之間切換的正確方法是什麼?創建一個ViewContollers的NSArray並將相應的ViewController的視圖加載到活動的View?

+0

爲什麼要添加一個按鈕?你想添加一個新標籤嗎? – Saphrosit

+0

不,我真的需要添加一個自定義的UIButton。這就是我的客戶想要的...這個按鈕不是TabBarItem,它只是一個tabbar內的按鈕:http://gyazo.com/99fc0df0ed47dd6be91b558161cab4f9.png – WASD42

+0

@ WASD42:這看起來像我'UIToolBar'不是'UITabBar ',並且您可以輕鬆地將按鈕添加到前者。 – PengOne

回答

4

您不能直接將UIButton添加到UITabBarController。從UITabBarController Class Reference

您不應該直接訪問標籤欄控制器 的標籤欄視圖。

此外沿,文檔讀取:

標籤欄項通過它們的相應的視圖 控制器,被配置。要將標籤欄項目與視圖控制器相關聯,請創建 UITabBarItem類的新實例,爲視圖控制器適當地配置它 ,並將其分配給視圖控制器的 tabBarItem屬性。如果您沒有爲您的視圖控制器提供 的自定義選項卡欄項目,則視圖控制器會創建一個默認項目 ,其中不包含圖像以及視圖控制器標題 屬性中的文本。

因此你有兩個選項:

  1. 創建UITabBarItemdocumentation),並補充說。
  2. 改爲使用UIToolBar,但請記得添加UIBarButtonItem s。
+0

嗯,我確實需要一個帶有按鈕的UITabBar。如果標準元素無法實現,那麼我需要創建自己的實現:/這並不好玩...... – WASD42

+0

您應該**不**子類'UITabBar'。你爲什麼需要一個按鈕?您可以設置按鈕的操作,以便在選擇該選項卡時觸發。 – PengOne

+0

當用戶點擊按鈕時,我需要打開彈出窗口,這不是我想要的 - 這就是我的客戶想要的:/您說可以在點擊該選項卡項目時調用操作...我可以以某種方式禁用本地那麼Tabitem行爲(我是指切換視圖)? – WASD42

1

雖然OP已決定使用UIToolBar來解決這個問題,但我想我會發佈一個快速響應,爲任何閱讀本文的人提供另一種選擇。基本上,你可以做到這一點,但你必須做的是繼承UITabBarController,並創建你的UIButton並將它們添加到子類中。無論如何,這裏有一些提供細節的鏈接。

Here and Here

0

萬一有人絆倒這個老問題:你可能想看看的UITabBarUITabBarControllerUITabBarDelegateUITabBarControllerDelegate)各自的代表。