国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - IOS - iOS開發(fā)之視圖切換

iOS開發(fā)之視圖切換

2021-01-16 14:40執(zhí)著丶執(zhí)念 IOS

在iOS開發(fā)中視圖的切換是很頻繁的,獨立的視圖應(yīng)用在實際開發(fā)過程中并不常見,除非你的應(yīng)用足夠簡單。在iOS開發(fā)中常用的視圖切換有三種,今天我們將一一介紹,希望大家能夠喜歡。

一、視圖切換

  • uitabbarcontroller (分頁控制器) - 平行管理視圖
  • uinavigationcontroller (導(dǎo)航控制器) - 壓棧出棧管理視圖
  • 模態(tài)窗口

二、uitabbarcontroller分頁控制器

  • uitabbarcontroller是為了利用 頁簽切換視圖 設(shè)計的控制器
  • 該控制器有一個uitabbar控件,用戶通過點擊uitabbar進行視圖切換
  • uitabbarcontroller本身會不顯示任何視圖,它只是一個 容器控制器
  • 為了減少視圖間的耦合,所有uitabbarcontroller的子視圖的相關(guān)標(biāo)題、圖標(biāo)等信息由子視圖自己控制

iOS開發(fā)之視圖切換

注意事項:

  • uitabbarcontroller會一次性初始化所有子控制器,但默認(rèn)只加載第一個控制器視圖
  • 每個視圖控制器都有一個tabbarcontroller屬性,用它來訪問所在的uitabbarcontroller
  • 每個視圖控制器都有一個tabbaritem屬性,用它來控制uitabbarcontroller的uitabbar上的顯示信息
  • tarbaritem的image屬性必須是png格式,并且打開alpha通道 ,否則無法正常顯示
  • uitabbarcontroller通常是作為整個程序的rootviewcontroller的,我們需要在程序的window顯示之前就創(chuàng)建好它。

具體步驟如下:

  • 創(chuàng)建一個uitabbarcontroller對象
  • 創(chuàng)建uitabbarcontroller中每一個tab對應(yīng)的要顯示的對象viewcontroller
  • 通過uitabbarcontroller的viewcontrollers屬性將要顯示的所有viewcontroller添加到uitabbarcontroller中
  • 通過設(shè)置uitabbarcontroller對象為window.rootviewcontroller,然后顯示window

 

復(fù)制代碼 代碼如下:

//a.初始化一個tabbar控制器
uitabbarcontroller *tarbarvc = [[uitabbarcontroller alloc] init];
//設(shè)置控制器為window的根控制器
self.window.rootviewcontroller = tarbarvc;
//b.創(chuàng)建子控制器
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 = @"聯(lián)系人";
c2.tabbaritem.image = [uiimage imagenamed:@"tab_buddy_nor"];
uiviewcontroller *c3 = [[uiviewcontroller alloc] init];
c3.tabbaritem.title = @"動態(tài)";
c3.tabbaritem.image = [uiimage imagenamed:@"tab_qworld_nor"];
uiviewcontroller *c4 = [[uiviewcontroller alloc] init];
c4.tabbaritem.title = @"設(shè)置";
c4.tabbaritem.image = [uiimage imagenamed:@"tab_me_nor"];
//c.添加子控制器到itabbarcontroller中
tarbarvc.viewcontrollers = @[c1,c2,c3,c4];
//d.設(shè)置window為主窗口并顯示出來
[self.window makekeyandvisible];

 

uitabbarcontrollerdelegate代理

 

復(fù)制代碼 代碼如下:

#pragma mark 該方法用于控制tabbaritem能不能選中
- (bool)tabbarcontroller:(uitabbarcontroller *)tabbarcontroller shouldselectviewcontroller:(uiviewcontroller *)viewcontroller;

 

改變uitabbarcontroller當(dāng)前顯示視圖的方法

  • 改變selectedindex屬性
  • 改變selectedviewcontroller屬性
  • 改變viewcontrollers屬性

三、uinavigationcontroller導(dǎo)航控制器

  • uinavigationcontroller中的子控制器以棧的形式存儲,只有在棧頂部的控制器才能顯示在界面上
  • 壓棧pushcontroller,出棧popcontroller
  • uinavigationcontroller必須有一個根控制器rootviewcontroller
  • 子控制器通過navigationcontroller屬性訪問uinavigationcontroller
  • 在棧中的子控制器都有一個導(dǎo)航欄navigationbar,通過navigationitem去控制

iOS開發(fā)之視圖切換


uinavigationitem屬于mvc中的model,封裝了要顯示在uinavigationbar上的數(shù)據(jù):

title: 標(biāo)題
titleview :標(biāo)題視圖
leftbarbuttonitem :左按鈕
rightbarbuttonitem :右按鈕

下一個子視圖左側(cè)返回按鈕leftbarbuttonitem的標(biāo)題優(yōu)先級:

  • 導(dǎo)航欄返回按鈕backbarbuttonitem的標(biāo)題
  • 導(dǎo)航欄navigationitem的標(biāo)題
  • 視圖控制器的標(biāo)題

uinavigationcontroller常用的主要方法:

 

復(fù)制代碼 代碼如下:

#pragma mark 壓棧,把控制器壓入導(dǎo)航控制器子控制器棧中
- (void)pushviewcontroller:(uiviewcontroller *)viewcontroller animated:(bool)animated;
#pragma mark 出棧,把導(dǎo)航控制器子控制器棧的棧頂彈出
- (void)popviewcontrolleranimated:(bool)animated;
#pragma mark 多次出棧直到棧頂為指定控制器
- (void)poptoviewcontroller:(uiviewcontroller *)viewcontroller animated:(bool)animated;
#pragma mark 多次出棧直到棧頂為根控制器
- (void)poptorootviewcontrolleranimated:(bool)animated;

 

四、模態(tài)窗口

 

復(fù)制代碼 代碼如下:

#pragma mark 從下方彈出指定的視圖控制器,賦予模態(tài),即當(dāng)前視圖關(guān)閉前,其他視圖上的內(nèi)容無法操作
- (void)presentviewcontroller:(uiviewcontroller *)viewcontrollertopresent animated:(bool)flag completion:(void (^)(void))completion;
#pragma mark 關(guān)閉模態(tài)窗口,該方法在模態(tài)窗口中調(diào)用
- (void)dismissviewcontrolleranimated:(bool)flag completion:(void (^)(void))completion;

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产日产精品一区二区三区四区 | av片网站| 人妖天堂狠狠ts人妖天堂狠狠 | 欧美黄色网页 | av中文在线 | 日韩精品免费视频 | 久久综合九色综合欧美狠狠 | 国产资源免费观看 | 日韩一区二区免费视频 | 91久久国产精品 | 国产精品久久久99 | 亚洲国产精品成人 | 亚洲人成在线播放 | 一区二区三区在线视频播放 | 亚洲欧美在线观看 | 不卡一区 | 久久综合九色综合欧美狠狠 | 亚洲日韩中文字幕一区 | 亚洲成人精品 | 亚洲免费在线观看 | 国产日产久久高清欧美一区 | 青青操av| 亚洲在线视频 | www.久久久久久久 | 欧美片网站免费 | 欧洲精品在线观看 | 国产色婷婷 | 噜噜噜在线 | 91丨九色丨国产 | 免费在线成人网 | 日韩成人一区二区 | 成人精品综合 | 久久av网| a级性生活片 | 久久精品无码一区二区三区 | 欧美一级久久 | 2023国产精品久久久精品双 | 精品一区久久 | 精品久久久久久久人人人人传媒 | 午夜国产 | 91精品久久 |