国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > iOS > 正文

關(guān)于UITabBarController的使用解剖

2020-02-19 15:55:33
字體:
供稿:網(wǎng)友

  今天小編跟大家詳談一下關(guān)于UITabBarController的使用解剖,感興趣的朋友跟小編一起來了解一下吧!

  首先我們看一下它的view層級圖:

  復制代碼 代碼如下:

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

  {

  self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

  // Override point for customization after application launch.

  self.window.backgroundColor = [UIColor whiteColor];

  #pragma mark - 設(shè)置tabBarItem

  #pragma mark 第一個視圖ViewController

  HMT_AViewController * tabBarViewA = [[HMT_AViewController alloc] init];

  // 設(shè)置A視圖下----標簽欄標題文字(可參照微信或者QQ體會)

  tabBarViewA.tabBarItem.title = @"微信";

  // 設(shè)置A視圖下----標簽欄圖片(因為自己沒有圖片,在這里隨便設(shè)置了個名字)

  //tabBarViewA.tabBarItem.image = [UIImage imageNamed:@"1.png"];

  // 設(shè)置A視圖下----標簽欄信息提示(住:badgeValue是NSString類型 如下設(shè)置了3,就像QQ消息有3條未接受一樣,給人一種提醒)

  tabBarViewA.tabBarItem.badgeValue = @"3";

  // ios7棄用了----標簽欄選中的時候顯示一張圖片,沒選中的時候顯示另一張圖片

  //[tabBarViewA.tabBarItem setFinishedSelectedImage:actionMenu.selectedIcon withFinishedUnselectedImage:actionMenu.icon];

  // ios7的方法(自己沒有圖片,所以代碼里面的圖片都是一個隨便取的名字,沒有實用意義)

  //tabBarViewA.tabBarItem.selectedImage = actionMenu.selectedIcon;

  #pragma mark 第二個視圖ViewController

  // 第二個視圖ViewController

  HMT_BViewController * tabBarViewB = [[HMT_BViewController alloc] init];

  // 設(shè)置B視圖下----標簽欄

  // 用系統(tǒng)提供的標識(可以算等價于圖標和文字)進行設(shè)置(參數(shù):UITabBarSystemItem是個枚舉值,想要什么形式,就去系統(tǒng)提供的API中找)

  tabBarViewB.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemSearch tag:1];

  // 設(shè)置B視圖下----標簽欄信息提示

  tabBarViewB.tabBarItem.badgeValue = @"GO";

  #pragma mark 第三個視圖ViewController

  HMT_CViewController * tabBarViewC = [[HMT_CViewController alloc] init];

  tabBarViewC.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemDownloads tag:2];

  // 設(shè)置B視圖下----標簽欄信息提示

  tabBarViewC.tabBarItem.badgeValue = @"new";

  #pragma mark 第四個視圖ViewController

  HMT_DViewController * tabBarViewD = [[HMT_DViewController alloc] init];

  tabBarViewD.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:3];

  // 設(shè)置B視圖下----標簽欄信息提示

  tabBarViewD.tabBarItem.badgeValue = @"99";

  #pragma mark 第五個視圖ViewController

  HMT_EViewController * tabBarViewE = [[HMT_EViewController alloc] init];

  tabBarViewE.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemHistory tag:4];

  // 設(shè)置B視圖下----標簽欄信息提示

  tabBarViewE.tabBarItem.badgeValue = @"sky";

  #pragma mark 第六個視圖ViewController(系統(tǒng)默認能顯示的最大視圖個數(shù)是5個)

  /* 如果你的viewControllers屬性添加了多于五個的items,那tab bar controller將會自動插入一個特殊的view controller,

  稱為 More view controller,該 controller 將會負責管理多于的items,這個More view controller提供一個自定義的界面,

  用table的方式呈現(xiàn)多余的view controller,并且view controller的數(shù)量是不限制的*/

  HMT_FViewController * tabBarViewF = [[HMT_FViewController alloc] init];

  tabBarViewF.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemContacts tag:5];

  // 設(shè)置F視圖下----標簽欄信息提示

  tabBarViewF.tabBarItem.badgeValue = @"AG";

  #pragma mark - 設(shè)置TabBarController

  // 創(chuàng)建TabBarController

  UITabBarController * tabBarController = [[UITabBarController alloc]init];

  // TabBarController默認是放在最底部的,如果你想調(diào)整位置,可以進行下面2部操作(44是iPhone中TabBarController和UINavigationController標準高度)

  //CGRect frame = CGRectMake(0, 20, 320, 44);

  //tabBarController.tabBar.frame = frame;

  // 每一個tab都必須有一個content view controller------->viewControllers屬性,用來存入一個應用的TabBarController有多少個界面切換

  tabBarController.viewControllers = [NSArray arrayWithObjects:tabBarViewA,tabBarViewB,tabBarViewC,tabBarViewD,tabBarViewE,tabBarViewF, nil nil];

  // 設(shè)置著色

  tabBarController.tabBar.tintColor = [UIColor greenColor];

  // 設(shè)置選中圖片時候

  tabBarController.tabBar.selectedImageTintColor = [UIColor brownColor];

  // 設(shè)置背景圖片(自己沒有圖片,不進行設(shè)置)

  //tabBarController.tabBar.backgroundImage = [UIImage imageNamed:@"@@@@@"];

  // 設(shè)置程序啟動時默認的ViewController視圖(設(shè)置為3,一共5個ViewController,進來時候顯示的視圖就是第4個-tabBarViewD,下標從0開始)

  tabBarController.selectedIndex = 3;

  self.window.rootViewController = tabBarController;

  [self.window makeKeyAndVisible];

  return YES;

  }

  最后效果如下圖:

  UITabBarController的代理方法以及模態(tài)顯示

  首先要實現(xiàn)協(xié)議

  復制代碼 代碼如下:

  // 設(shè)置代理

  tabBarController.delegate =self;

  //UINavigationController *nav = tabBarController.moreNavigationController;

  //[nav setNavigationBarHidden:YES animated:YES];

  // 控制哪些ViewController的標簽欄能被點擊

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

  // 代表HMT_CViewController這個View無法顯示,無法點擊到它代表的標簽欄

  if ([viewControllerisKindOfClass:[HMT_CViewControllerclass]]) {

  returnNO;

  }

  returnYES;

  }

  // 選中哪個標簽欄,一個監(jiān)控作用吧

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

  }

  // More view controller將要開始編輯

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

  }

  // More view controller將要結(jié)束編輯

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

  }

  // More view controller編輯

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

  }

  #import "HMT-AViewController.h"

  #import "HMTModalShowViewController.h"

  @interfaceHMT_AViewController ()

  @end

  @implementation HMT_AViewController

  - (void)viewDidLoad

  {

  [superviewDidLoad];

  self.view.backgroundColor = [UIColorredColor];

  // 創(chuàng)建一個按鈕

  UIButton * button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];

  button.frame =CGRectMake(100,100,100, 100);

  [button addTarget:self action:@selector(modalShow)forControlEvents:UIControlEventTouchUpInside];

  [self.view addSubview:button];

  // Do any additional setup after loading the view.

  }

  - (void)modalShow{

  HMTModalShowViewController * modalShowVC = [[HMTModalShowViewController alloc]init];

  //模態(tài)視圖控制器呈現(xiàn)出來時候的視覺效果

  modalShowVC.modalTransitionStyle =UIModalTransitionStyleCrossDissolve;

  /*

  UIModalTransitionStyleCoverVertical = 0, //默認,由下往上

  UIModalTransitionStyleFlipHorizontal, //水平轉(zhuǎn)動效果

  UIModalTransitionStyleCrossDissolve, //漸變效果

  UIModalTransitionStylePartialCurl, //書頁往上翻動效果

  */

  //模態(tài)視圖控制器呈現(xiàn)方式,默認全屏

  modalShowVC.modalPresentationStyle =UIModalPresentationFullScreen;

  /*

  UIModalPresentationFullScreen = 0,

  UIModalPresentationPageSheet,

  UIModalPresentationFormSheet,

  UIModalPresentationCurrentContext,

  UIModalPresentationCustom,

  UIModalPresentationNone = -1,

  */

  UINavigationController * modalShowNC = [[UINavigationController alloc] initWithRootViewController:modalShowVC];

  //推出模態(tài)視圖控制器

  [self presentViewController:modalShowNC animated:YES completion:^{

  NSLog(@"hello world");

  }];

  }

  #import "HMTModalShowViewController.h"

  @interfaceHMTModalShowViewController ()

  @end

  @implementation HMTModalShowViewController

  - (void)viewDidLoad

  {

  [superviewDidLoad];

  // Do any additional setup after loading the view.

  self.view.backgroundColor = [UIColor yellowColor];

  // 利用UINavigationController來實現(xiàn)退出控制器

  UIBarButtonItem * barButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(modalDismiss)];

  self.navigationItem.leftBarButtonItem = barButton;

  self.navigationItem.title =@"humingtao";

  //創(chuàng)建一個按鈕來實現(xiàn)退出控制器

  /* UIButton * button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];

  button.frame = CGRectMake(100, 100, 100, 100);

  [button addTarget:self action:@selector(modalDismiss) forControlEvents:UIControlEventTouchUpInside];

  [self.view addSubview:button];*/

  }

  - (void)modalDismiss{

  //退出模態(tài)視圖控制器

  [self dismissViewControllerAnimated:YES completion:^{

  NSLog(@"退出GoodBye");

  }];

  }

  @end

  以上就是關(guān)于UITabBarController的使用詳細解剖了,想必都了解了吧,更多相關(guān)內(nèi)容請繼續(xù)關(guān)注武林技術(shù)頻道。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 博兴县| 哈尔滨市| 南汇区| 洪洞县| 定陶县| 汽车| 宿迁市| 股票| 上栗县| 临汾市| 太仓市| 门源| 翁源县| 拜城县| 育儿| 股票| 旬邑县| 武功县| 进贤县| 衡南县| 青阳县| 廉江市| 西丰县| 大竹县| 郑州市| 榕江县| 通榆县| 安新县| 中方县| 娱乐| 富平县| 聂荣县| 新竹县| 孙吴县| 茌平县| 阜城县| 赫章县| 卢湾区| 忻城县| 怀远县| 积石山|