欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

比較IOS開發(fā)中常用視圖的四種切換方式

 更新時間:2016年08月19日 10:50:23   作者:AA歲月靜好AA  
這篇文章給大家介紹了在IOS開發(fā)中常用視圖的四種切換方式以及這四種方式的優(yōu)缺點(diǎn),這四種方式包括:push,pop、modal、切換窗口的根控制器和添加子視圖,有需要的可以參考借鑒。

在iOS開發(fā)中,比較常用的切換視圖的方式主要有以下幾種:

1. push、pop

使用舉例(ViewController假設(shè)為需要跳轉(zhuǎn)的控制器):

[self.navigationController pushViewController:ViewController animated:YES]; //入棧,跳轉(zhuǎn)到指定控制器視圖
[self.navigationController popViewControllerAnimated:YES]; //彈棧,返回到前一個視圖
[self.navigationController popToViewController:ViewController animated:YES]; //彈棧 返回指定控制器所在視圖
[self.navigationController popToRootViewControllerAnimated:YES]; //彈棧 返回根控制器視圖

2. modal

使用舉例(ViewController假設(shè)為需要跳轉(zhuǎn)的控制器):

[self presentViewController:ViewController animated:YES completion:nil]; //跳轉(zhuǎn)到ViewController所在視圖
[self dismissModalViewControllerAnimated:YES]; //退出當(dāng)前視圖

3. 切換window的rootViewController

使用舉例(ViewController假設(shè)為需要跳轉(zhuǎn)的控制器):

UIWindow *window = [UIApplication sharedApplication].keyWindow; //獲得主窗口
window.rootViewController = [[ViewController alloc] init]; //將主窗口的根視圖設(shè)置為當(dāng)前控制器

4. 將另一個控制器的視圖添加為當(dāng)前控制器視圖的子視圖

[self.view addSubview: ViewController.View]; //實現(xiàn)復(fù)雜界面的時候常用

簡要介紹下各種方式的優(yōu)點(diǎn)和不足:

1、push、pop方式

優(yōu)點(diǎn):控制器切換是可逆的,且原始圖不會銷毀

缺點(diǎn):依賴于UINavigationController,故需要有一個導(dǎo)航控制器,與某些界面不需要導(dǎo)航控制器有可能會沖突

push操作是可逆的,即控制器的切換時可逆的。

2、modal

優(yōu)點(diǎn):控制器切換是可逆的,且原始圖不會銷毀

缺點(diǎn):跳轉(zhuǎn)沒有push方式自由,dismiss方式只能按順序返回,不能跳躍, 從前一個modal到后一個時候,前一個控制器不會消失,一直在內(nèi)存中

3、切換window的rootViewController

優(yōu)點(diǎn):跳轉(zhuǎn)直接迅速,而且可以銷毀前一個控制器,因為將window的強(qiáng)引用改為當(dāng)前控制器,故前一個控制器會消失(ARC環(huán)境)

缺點(diǎn):視圖跳轉(zhuǎn)不可逆

4、將一個控制器的視圖添加到當(dāng)前視圖上面

優(yōu)點(diǎn):通過一個控制器將另一控制器設(shè)置為屬性,自由讀取其他控制器中的視圖從而能夠?qū)崿F(xiàn)復(fù)雜UI界面

缺點(diǎn):復(fù)雜,多數(shù)場合不適用

列表比較如下:

比較項目 push、pop modal 切換窗口的根控制器 添加子視圖
銷毀源視圖
使用場合 有導(dǎo)航控制器,需要能夠返回前一個視圖的情況 沒有導(dǎo)航控制器的跳轉(zhuǎn),能返回前一個視圖 版本新特性或者不需要保留前一個控制器的情況 需要實現(xiàn)復(fù)雜界面的情況
是否有導(dǎo)航控制器

總結(jié)

視圖切換的方式各有利弊,需要根據(jù)我們的需求選擇使用的方式,以上就是本文的全部呢榮,水平有限,若有不正確之處,望各位批評指正,共同學(xué)習(xí),共同提高!

相關(guān)文章

  • iOS獲取本地音頻文件(屬性/信息)

    iOS獲取本地音頻文件(屬性/信息)

    這篇文章主要為大家詳細(xì)介紹了iOS獲取本地音頻文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • iOS實現(xiàn)UITableView數(shù)據(jù)為空時的提示頁面

    iOS實現(xiàn)UITableView數(shù)據(jù)為空時的提示頁面

    最近工作中遇到一個需求,當(dāng)UITableView數(shù)據(jù)為空的時候,給出一個簡單的提示頁面,通過從網(wǎng)上查找解決的方法,發(fā)現(xiàn)了兩種實現(xiàn)的方法,現(xiàn)在分享給大家,有需要的朋友們可以參考借鑒,下面感興趣的朋友們來一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • iOS App中實現(xiàn)播放音效和音樂功能的簡單示例

    iOS App中實現(xiàn)播放音效和音樂功能的簡單示例

    這篇文章主要介紹了iOS App中實現(xiàn)播放音效和音樂功能的簡單示例,示例代碼為傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2016-03-03
  • IOS開發(fā)代碼分享之用nstimer實現(xiàn)倒計時功能

    IOS開發(fā)代碼分享之用nstimer實現(xiàn)倒計時功能

    在制作IOS項目中,我們經(jīng)常要用到倒計時功能,今天就分享下使用nstimer實現(xiàn)的倒計時功能的代碼,希望對大家能有所幫助
    2014-09-09
  • 淺談iOS 屏幕方向那點(diǎn)事兒

    淺談iOS 屏幕方向那點(diǎn)事兒

    這篇文章主要介紹了淺談iOS 屏幕方向那點(diǎn)事兒,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • iOS開發(fā)之路--微博新特性頁面

    iOS開發(fā)之路--微博新特性頁面

    本文是IOS開發(fā)之路系列的第三篇,主要是分享了微博新特性頁面的制作源碼,希望對大家有所幫助
    2014-08-08
  • IOS 開發(fā)之ObjectiveC的變量類型的字符代表

    IOS 開發(fā)之ObjectiveC的變量類型的字符代表

    這篇文章主要介紹了IOS 開發(fā)之ObjectiveC的變量類型的字符代表的相關(guān)資料,這里舉例說明如何使用Objective的變量類型的字符,幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08
  • iOS App之間的通信 local socket

    iOS App之間的通信 local socket

    這篇文章主要介紹了iOS App之間的通信 local socket的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • iOS開發(fā)中WebView的基本使用方法簡介

    iOS開發(fā)中WebView的基本使用方法簡介

    這篇文章主要介紹了iOS開發(fā)中WebView的基本使用方法,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2015-11-11
  • iOS獲取驗證碼倒計時效果

    iOS獲取驗證碼倒計時效果

    這篇文章主要為大家詳細(xì)介紹了iOS獲取驗證碼倒計時效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11

最新評論