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

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

 更新時(shí)間: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]; //彈棧,返回到前一個(gè)視圖
[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. 將另一個(gè)控制器的視圖添加為當(dāng)前控制器視圖的子視圖

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

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

1、push、pop方式

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

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

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

2、modal

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

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

3、切換window的rootViewController

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

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

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

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

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

列表比較如下:

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

總結(jié)

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

相關(guān)文章

最新評(píng)論