簡體   English   中英

以編程方式將UITabBarItem添加到UITabBar,並對其進行設置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM