你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS開發-UI (十一) UITabBarController

iOS開發-UI (十一) UITabBarController

編輯:IOS開發綜合

知識點:

1.UITabBarController運用

2.UITabBarItem運用

 

關於TabBarController除了本次整理的內容,有興味的可以看下我以前發過的這兩篇,在實踐開發中很適用的東西.

RDVTabBarController的根本運用 以及tabbar的避免雙點擊辦法 從tabBarController的一個item上的控制器跳轉到另一個item上的控制器

 

=======================

UITabBarController

    1.創立方式

    2.如何把一個UIViewController參加到UITabBarController

    3.如何把一個UINavigationController參加到UITabBarController

    4.如何記住點擊順序

    5.設置和獲取選中項

@property(nonatomic) NSUInteger selectedIndex;

 

=======================

UITabBarItem

 

    1.UITabBarItem和UITabBarController關系

tabBarItem是UIViewController的一個屬性

這個屬性是為UITabBarController服務的

    2.創立文字和圖片的UITabBarItem 

      - (id)initWithTitle:(NSString *)title 

      image:(UIImage *)image 

tag:(NSInteger)tag;

 

-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{

    

    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {

//設置文字帶圖片類型的

self.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"白色" image:[UIImage imageNamed:@"1_selected"] tag:0];

 

//設置文字,選中圖片和非選中圖片類型

     // self.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"白色" image:[UIImage imageNamed:@"3_normal"] selectedImage:[UIImage imageNamed:@"3_selected"]];

}

 

 

留意:IOS7後添加的函數

- (instancetype)initWithTitle:(NSString *)title 

image:(UIImage *)image 

selectedImage:(UIImage *)selectedImage

 

    3.創立零碎自帶的UITabBarSystemItem

- (id)initWithtabBarSystemItem:(UITabBarSystemItem)systemItem 

  tag:(NSInteger)tag;

 

//設置零碎類型

self.tabBarItem = [[UITabBarItem alloc] initWithtabBarSystemItem:UITabBarSystemItemTopRated tag:0];

 

 

    4.設置UITabBarItem徽標

      @property(nonatomic,copy) NSString *badgeValue

    

//設置徽標

self.tabBarItem.badgeValue = [NSString stringWithFormat:@"%ld",10L];

 

 

=======================

UITabBarController運用留意

    1.UITabBarController數量限制

      1)tabBarController中最多只允許顯示5個試圖控制器

超出的零碎會自動添加一個more

    2.UITabBarController編輯

用戶可以隨意設置每個控制的顯示的地位

 

=======================

UITabBarController順序

    1.記載用戶最後一次點擊的viewController

      1)NSUserDefaults作用

NSUserDefaults對象是用來保管,恢復使用順序相關的偏好設置,配置數據等等

      2)NSUserDefaults創立

  + (NSUserDefaults *)standardUserDefaults

      3)存儲數據

- (void)set[數據類型]:(數據類型)value forKey:(NSString *)defaultName;

      4)同步數據

- (BOOL)synchronize;

      5)讀取數據

- (數據類型)[數據類型]ForKey:(NSString *)defaultName;

 

    2.UITabBarControllerDelegate運用

      1)被選中的時分

    - (void)tabBarController:(UITabBarController *)tabBarController 

      didSelectViewController:(UIViewController *)viewController

#pragma mark- UITabBarControllerDelegate

//曾經選擇某一個控制器

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{

     NSLog(@"以後處於選中形態的控制器下標為%ld",tabBarController.selectedIndex);

    //記載

    NSUserDefaults *def = [NSUserDefaults standardUserDefaults];

    [def setInteger:tabBarController.selectedIndex forKey:@"index"];

    //同步到本地

    [def synchronize];
}

 

 

      2)控制TabBarItem能不能選中

    - (BOOL)tabBarController:(UITabBarController *)tabBarController 

      shouldSelectViewController:(UIViewController *)viewController;

//預備選擇某一個控制器(能否能選中該控制器)

-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController{

    //viewController 待會選中的控制器對象

    //tabBarController 以後管理的分欄控制器

    //NSLog(@"以後處於選中形態的控制器下標為%ld",tabBarController.selectedIndex);

    /*錯誤寫法:不允許選中第一個控制器

    if (tabBarController.selectedIndex == 0) {

        return NO;

    }

     */

    if (viewController == tabBarController.viewControllers[0]) {

        return NO;
    }

    //前往YES,可以選中,前往NO,不允許選中

    return YES;
}

 

 

      3)上面這三個辦法次要用於監測對moreViewController中對view controller的edit操作

   

 #pragma mark- UITabBarControllerDelegate

1.//預備開端編輯

-(void)tabBarController:(UITabBarController *)tabBarController willBeginCustomizingViewControllers:(NSArray *)viewControllers{

    

    NSLog(@"willBeginCustomizingViewControllers");

}

2.//預備完畢編輯

-(void)tabBarController:(UITabBarController *)tabBarController willEndCustomizingViewControllers:(NSArray *)viewControllers changed:(BOOL)changed{ 

    

    NSLog(@"willEndCustomizingViewControllers");

}

 

3.//曾經完畢編輯

-(void)tabBarController:(UITabBarController *)tabBarController didEndCustomizingViewControllers:(NSArray *)viewControllers changed:(BOOL)changed{

    

    //判別能否改動了順序

    if (changed) {

        

        //記載標題順序

        NSMutableArray *newArr = [NSMutableArray new];

        

        for (UIViewController *ctl in viewControllers) {

            

            [newArr addObject:ctl.title];

        

        }    

        //保管到本地

        NSUserDefaults *def = [NSUserDefaults standardUserDefaults];

        [def setObject:newArr forKey:@"saveArr"];

        [def synchronize];     

    }

}

 

【iOS開發-UI (十一) UITabBarController】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved