![](/img/trans.png)
[英]Adding UITabBarItem to a UITabBar in a UIViewController
[英]Adding UITabBarItem to UITabBar programmatically, and set action to it
我正在使用iOS 6.1
並且我有一個帶有兩個TabBarController
,它們每個都推送到NavigationControllerView
。
如何從任何子控制器中將新的UITabBarItem
添加到TabBarController
,並設置特定的操作。
注意:現在,我修訂了在StackOverflows
詢問的幾個問題,它們的措詞與此幾乎完全相同,但是它們的實現與我在此描述的不完全相同。
iOS
允許嗎? 如果沒有,您是否會分享您的想法?
注意:經過幾天的顛簸,我嘗試了以下方法,雖然可以,但是我並不完全滿意。
該方法包括擁有一個控制器類,
1)讓您的一個控制器類繼承UITabBarControllerDelegate。 就我而言,我在類中實現了該委托,該委托很可能在AppDelegate之后首次實例化,換句話說,屬於應用程序第一個視圖的Class
interface MainTableViewController: UITableViewController <UITabBarControllerDelegate>
...
2)在viewDidLoad中設置TabBarController的委托
self.tabBarController.delegate = self;
3)實現協議tabBarController:shouldSelectViewController :,使用此方法可以控制將顯示哪個視圖。
就我而言,我之前添加了一些虛擬的視圖控制器,並且給每個BarItem一個不同的標簽號
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
switch (viewController.tabBarItem.tag) {
case 3:
{
[self someActionA];
return NO;
}
case 4:
{
[self someActionB];
return NO;
}
default:
return YES;
}
}
到目前為止,這段代碼將達到我最初真正意圖的技巧,但是我希望我可以在AppDelegate中做到這一點。
如果有人可能遇到相同的問題,或者如果您采用其他方法,請分享。
您可以使用UITabBarController
繼承來創建新的控制器,並在UITabBar
> UITabBarItem
上添加一個自定義按鈕,因此UITabBarItem
將發送回,而您的自定義按鈕將顯示在前面。 您可以使用此自定義按鈕設置任何特殊動作。 否則,iOS SDK不允許對UITabBarItem
采取特別行動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.