亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS開發之視圖切換

2020-07-26 03:22:37
字體:
來源:轉載
供稿:網友

一、視圖切換

  1. UITabBarController (分頁控制器) - 平行管理視圖
  2. UINavigationController (導航控制器) - 壓棧出棧管理視圖
  3. 模態窗口

二、UITabBarController分頁控制器

  1. UITabBarController是為了利用 頁簽切換視圖 設計的控制器
  2. 該控制器有一個UITabBar控件,用戶通過點擊UITabBar進行視圖切換
  3. UITabBarController本身會不顯示任何視圖,它只是一個 容器控制器
  4. 為了減少視圖間的耦合,所有UITabBarController的子視圖的相關標題、圖標等信息由子視圖自己控制

注意事項:

  1. UITabBarController會一次性初始化所有子控制器,但默認只加載第一個控制器視圖
  2. 每個視圖控制器都有一個tabBarController屬性,用它來訪問所在的UITabBarController
  3. 每個視圖控制器都有一個tabBarItem屬性,用它來控制UITabBarController的UITabBar上的顯示信息
  4. tarBarItem的image屬性必須是png格式,并且打開alpha通道 ,否則無法正常顯示
  5. UITabBarController通常是作為整個程序的rootViewController的,我們需要在程序的window顯示之前就創建好它。

具體步驟如下:

  1. 創建一個UITabBarController對象
  2. 創建UITabBarController中每一個tab對應的要顯示的對象viewController
  3. 通過UITabBarController的viewControllers屬性將要顯示的所有viewController添加到UITabBarController中
  4. 通過設置UITabBarController對象為window.rootViewController,然后顯示window

復制代碼 代碼如下:

//a.初始化一個tabBar控制器
UITabBarController *tarbarVC = [[UITabBarController alloc] init];
//設置控制器為Window的根控制器
self.window.rootViewController = tarbarVC;
//b.創建子控制器
UIViewController *c1 = [[UIViewController alloc] init];
c1.view.backgroundColor = [UIColor grayColor];
c1.view.backgroundColor=[UIColor greenColor];
c1.tabBarItem.title = @"消息";
c1.tabBarItem.image = [UIImage imageNamed:@"tab_recent_nor"];
c1.tabBarItem.badgeValue = @"123";
UIViewController *c2 = [[UIViewController alloc] init];
c2.view.backgroundColor = [UIColor brownColor];
c2.tabBarItem.title = @"聯系人";
c2.tabBarItem.image = [UIImage imageNamed:@"tab_buddy_nor"];
UIViewController *c3 = [[UIViewController alloc] init];
c3.tabBarItem.title = @"動態";
c3.tabBarItem.image = [UIImage imageNamed:@"tab_qworld_nor"];
UIViewController *c4 = [[UIViewController alloc] init];
c4.tabBarItem.title = @"設置";
c4.tabBarItem.image = [UIImage imageNamed:@"tab_me_nor"];
//c.添加子控制器到ITabBarController中
tarbarVC.viewControllers = @[c1,c2,c3,c4];
//d.設置Window為主窗口并顯示出來
[self.window makeKeyAndVisible];

UITabBarControllerDelegate代理

復制代碼 代碼如下:

#pragma mark 該方法用于控制TabBarItem能不能選中
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController;

改變UITabBarController當前顯示視圖的方法

  1. 改變selectedIndex屬性
  2. 改變selectedViewController屬性
  3. 改變viewControllers屬性

三、UINavigationController導航控制器

  1. UINavigationController中的子控制器以棧的形式存儲,只有在棧頂部的控制器才能顯示在界面上
  2. 壓棧pushController,出棧popController
  3. UINavigationController必須有一個根控制器rootViewController
  4. 子控制器通過navigationController屬性訪問UINavigationController
  5. 在棧中的子控制器都有一個導航欄navigationBar,通過navigationItem去控制


UINavigationItem屬于MVC中的Model,封裝了要顯示在UINavigationBar上的數據:

title: 標題
titleView :標題視圖
leftBarButtonItem :左按鈕
rightBarButtonItem :右按鈕

下一個子視圖左側返回按鈕leftBarButtonItem的標題優先級:

  1. 導航欄返回按鈕backBarButtonItem的標題
  2. 導航欄navigationItem的標題
  3. 視圖控制器的標題

UINavigationController常用的主要方法:

復制代碼 代碼如下:

#pragma mark 壓棧,把控制器壓入導航控制器子控制器棧中
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;
#pragma mark 出棧,把導航控制器子控制器棧的棧頂彈出
- (void)popViewControllerAnimated:(BOOL)animated;
#pragma mark 多次出棧直到棧頂為指定控制器
- (void)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
#pragma mark 多次出棧直到棧頂為根控制器
- (void)popToRootViewControllerAnimated:(BOOL)animated;

四、模態窗口

復制代碼 代碼如下:

#pragma mark 從下方彈出指定的視圖控制器,賦予模態,即當前視圖關閉前,其他視圖上的內容無法操作
- (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion;
#pragma mark 關閉模態窗口,該方法在模態窗口中調用
- (void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频导航| 国产欧美最新羞羞视频在线观看| 中文字幕亚洲欧美一区二区三区| 国产在线不卡精品| 国产亚洲美女久久| 久久成人免费视频| 国产成人精品一区| 精品久久久久久久久久久| 亚洲第一精品夜夜躁人人爽| 国产精品网址在线| 中文字幕视频在线免费欧美日韩综合在线看| 国产99久久久欧美黑人| 日韩女优在线播放| 欧美亚洲视频在线观看| 一区二区欧美亚洲| 亚洲美女动态图120秒| 亚洲图片欧美午夜| 国产精品久久久av| 精品日本高清在线播放| 中文字幕久热精品视频在线| 亚洲美女性视频| 亚洲男女自偷自拍图片另类| 国产精品高潮视频| 亚洲欧洲免费视频| 在线观看日韩av| 亚洲精品资源在线| 欧美日韩亚洲国产一区| 97超级碰在线看视频免费在线看| 中文一区二区视频| 久久69精品久久久久久国产越南| 久久久久久久久中文字幕| 欧美激情综合色综合啪啪五月| 亚洲精品自在久久| 欧美最猛性xxxx| 成人精品久久久| 热99久久精品| 国产精品电影网| 91久久中文字幕| 51精品在线观看| 91po在线观看91精品国产性色| 国产乱肥老妇国产一区二| 伊人久久久久久久久久| 国产日韩在线一区| 日韩av三级在线观看| 97精品一区二区三区| 久久男人资源视频| 日韩视频亚洲视频| 久久大大胆人体| 国产va免费精品高清在线| 国产欧美日韩丝袜精品一区| 日韩视频免费在线| 亚洲女同精品视频| 色综合久久中文字幕综合网小说| 亚洲综合av影视| 国内精品模特av私拍在线观看| 国产精品爽爽爽| 成人午夜在线观看| 91啪国产在线| 色吧影院999| 性欧美亚洲xxxx乳在线观看| 亚洲精品视频网上网址在线观看| 欧美激情精品久久久久久黑人| 国产在线观看精品一区二区三区| 久久天天躁日日躁| 亚洲精品91美女久久久久久久| 成人激情在线观看| 日韩av综合网站| 亚洲精品一区二区三区婷婷月| 国产精品久久久久aaaa九色| 美女av一区二区三区| 97久久久免费福利网址| 久久精品99国产精品酒店日本| 精品色蜜蜜精品视频在线观看| 国产欧美va欧美va香蕉在| 亚洲国产精品久久| 中文字幕在线亚洲| 欧美日韩高清区| 中文字幕亚洲专区| 青青青国产精品一区二区| 欧美激情第1页| 久久激情视频免费观看| 中文字幕av一区二区三区谷原希美| 日韩精品在线视频美女| 亚洲美女视频网| 日韩中文字幕亚洲| 久久久久日韩精品久久久男男| 日韩欧美综合在线视频| 国产一区二区三区在线观看网站| 久久久久久国产三级电影| 久久人91精品久久久久久不卡| 日韩性xxxx爱| 黑人巨大精品欧美一区二区一视频| 精品亚洲va在线va天堂资源站| 亚洲国产99精品国自产| 91精品国产91久久久久久吃药| 国产精品嫩草影院一区二区| 亚洲天堂2020| 欧美成人小视频| 81精品国产乱码久久久久久| 日韩精品中文字幕在线| 国产精品久久网| 日韩在线免费高清视频| 久久99精品国产99久久6尤物| 成人av资源在线播放| 亚洲自拍高清视频网站| 精品国产精品三级精品av网址| 欧美华人在线视频| 久久久久国产精品一区| 欧美亚洲在线播放| 欧美裸身视频免费观看| 91久久国产精品| 欧美与欧洲交xxxx免费观看| 日韩亚洲成人av在线| 日av在线播放中文不卡| 精品少妇一区二区30p| 国产日韩在线一区| 成人黄色片在线| 日本不卡高字幕在线2019| 亚洲视频第一页| 精品国产依人香蕉在线精品| 一区二区三区国产在线观看| 亚洲精品不卡在线| 精品久久久久久久久久ntr影视| www.久久久久久.com| 欧美一区二区三区……| 成人免费视频网址| 亚洲精品456在线播放狼人| 国产成人一区二| 亚洲香蕉av在线一区二区三区| 亚洲开心激情网| 亚洲精品videossex少妇| 久久免费精品视频| 欧美黄色免费网站| 伊人久久综合97精品| 51精品国产黑色丝袜高跟鞋| 日韩欧美视频一区二区三区| 色樱桃影院亚洲精品影院| 成人黄色在线观看| 美日韩精品免费视频| 91国产一区在线| 这里只有精品久久| 日韩精品在线影院| 日韩免费不卡av| 91国产在线精品| 日韩午夜在线视频| 国产精品影片在线观看| 国产成人aa精品一区在线播放| 久久久日本电影| 国产精品丝袜一区二区三区| 亚洲国产精品中文| 国产精品免费电影| 国产精品免费视频久久久| 美乳少妇欧美精品| 国产伦精品一区二区三区精品视频| 欧美成人免费全部| 亚洲精品一区二三区不卡| 黄色一区二区在线| 日韩欧美成人精品| 91久久精品日日躁夜夜躁国产| 日韩精品在线第一页| 中文字幕久久精品| 久久久久成人网| 午夜精品一区二区三区在线视频| 亚洲已满18点击进入在线看片|