2013-10-30 36 views
1

我想通過將UITabbarController的子類添加到我的項目來創建自定義的UITabbarController。使用子類的自定義UITabBarController

自定義選項卡欄包含用於選定狀態和未選定狀態的自定義圖標以及我要添加的選項卡背景。

我加入了代表我的.h文件中,如下所示:

#import <UIKit/UIKit.h> 

@interface CustomTabViewController : UITabBarController <UITabBarDelegate,UITabBarControllerDelegate> 
@property (strong, nonatomic) UIWindow *window; 

@end 

並在viewDidLoad方法,我宣佈我的所有圖片,我想用我的執行文件。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    UITabBarController *tabController = [[UITabBarController alloc] init]; 

    UIImage *tabBackground = [[UIImage imageNamed:@"[email protected]"] 
           resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 320, 60)]; 
    [[UITabBar appearance] setBackgroundImage:tabBackground]; 

    self.window.rootViewController = tabController; 

    UIImage *selectedImage = [UIImage imageNamed:@"[email protected]"]; 
    UIImage *unSelectedImage = [UIImage imageNamed:@"[email protected]"]; 
    UITabBar *tabBar = (UITabBar *)tabController.tabBar; 
    UITabBarItem *item1 = [tabBar.items objectAtIndex:0]; 
    [item1 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unSelectedImage]; 

    selectedImage = [UIImage imageNamed:@"[email protected]"]; 
    unSelectedImage = [UIImage imageNamed:@"[email protected]"]; 
    UITabBarItem *item2 = [tabBar.items objectAtIndex:1]; 
    [item2 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unSelectedImage]; 

    selectedImage = [UIImage imageNamed:@"[email protected]"]; 
    unSelectedImage = [UIImage imageNamed:@"[email protected]"]; 
    UITabBarItem *item3 = [tabBar.items objectAtIndex:2]; 
    [item3 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unSelectedImage]; 

    selectedImage = [UIImage imageNamed:@"[email protected]"]; 
    unSelectedImage = [UIImage imageNamed:@"[email protected]"]; 
    UITabBarItem *item4 = [tabBar.items objectAtIndex:3]; 
    [item4 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unSelectedImage]; 

} 

但是,當我運行應用程序沒有更改默認標籤欄控制器。我還將其課程設置爲我創建的自定義課程。

我想問一下,如果我在這裏使用正確的方法,還是有任何其他方法需要實現?

預先感謝您!

格蘭尼特

+0

你創造CustomTabViewController,在那裏你用這個CustomTabViewController?在viewDidLoad方法中,你也可以創建新的tabBarController而不使用CustomTabViewController。 – karthika

+0

@karthika我將故事板中的標籤欄控制器的類設置爲CustomTabViewController。我還必須在課堂內的某個地方使用它嗎?我不知道如何繼續? – Granit

回答

1

你也必須設置框架使用TabBar這樣的:

CGRect smallFrame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.width-300, frame.size.height-100); 

tabController = [[UITabBarController alloc] init]; 

tabController.view.frame = smallFrame; 
+0

謝謝你的提示。它解決了我的問題:) – Granit

相關問題