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

首頁 > 學院 > 開發設計 > 正文

iOS模態視圖,視圖之間的切換

2019-11-14 19:23:44
字體:
來源:轉載
供稿:網友

一、視圖之間的簡單切換?!?/span>

 視圖之間的切換實質是視圖控制器之間的切換,因為試圖控制器(UIViewController)上面都有視圖(view),試圖控制器切換了,視圖自然就實現了切換。

  新建一個工程,創建兩個類FirstViewController和SecondViewController,它們的父類都是UIViewController,還有工程里自帶的ViewController,一共三個視圖控制器。

  在每個類里面,即在這里的每個試圖控制器里都寫一個如下所示touch方法,這個方法是點擊屏幕就能調用,以便我們調試程序。

  -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ }

  再來設置一下每個視圖的背景顏色,就可以了,也是為了方便調試。

  

1、如果要實現ViewController到FirstViewController切換,首先在ViewController中引入FirstViewController的頭文件。

ViewController.m里面代碼:

- (void)viewDidLoad {

    [super viewDidLoad];

 self.view.bacgroundColor=[UIColor whiteColor];//設置成白色

}

//點擊屏幕調用此方法

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

   FirstViewController * firstVC=[[FirsttViewController alloc]init];

   [self PResentViewController:firstVC animated:YES completion:^{

        NSLog(@"present成功,從ViewController切換到FirstViewController");//此方法調用了會執行這行代碼

    }];

 }

 這樣就可以了,但是這樣的話從FirstViewController就回不到ViewController了,所以要在FirstViewController.m里寫如下方法了。在FirstViewController里面引入ViewController頭文件。

- (void)viewDidLoad {

    [super viewDidLoad];

 self.view.bacgroundColor=[UIColor redColor];//設置成紅色

}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

   [self dismissViewControllerAnimated:YES completion:^{

        NSLog(@"dismiss成功,從FirstViewController返回到ViewController");

    }];

 }

這就實現了從ViewController到FirstViewController得來回轉換了。

總結:要實現視圖之間的切換,要在兩個視圖控制器中分別寫如下兩個方法。

presentViewController: animated: completion:

dismissViewControllerAnimated: completion:

這兩個方法一般是一起使用,才能實現兩個視圖之間的來回切換。我們暫且說成一個present方法,一個dismiss方法。

 

2、模態視圖

   視圖控制器有一個presentModalViewController:的方法,該方法可以實現視圖切換,從當前視圖跳轉到下一個視圖,通過此方法彈出的視圖我們都稱為模態視圖,模態視圖是手機上非常常見。此方法如下:

 [self presentModelViewController: animated: completion:^{}];

 模態視圖出現的場景一般是臨時彈出的窗口,譬如:登陸窗口。

 模態視圖彈出時通過modalTransitionStyle屬性設置不同的動畫效果 。

 調用dismissModalViewControllerAnimated: 方法關閉窗口。

示例代碼和上述大致一樣,只是模態視圖彈出時通過modalTransitionStyle屬性設置不同的動畫效果。將上述調用的方法稍作修改就可以了。

ViewController.m中

 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

 FirstViewController *firstVC = [[FirstViewController alloc] init]; 

 firstVC.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;//設置視圖彈出時的動畫效果

 [self presentModalViewController:firstVC animated:YES];

 }

然后在FirstViewController.m中調用

 [self dismissModelViewControllerAnimated: completion:^{   }];

 

3、以上兩種情況都是實現了試圖控制器之間的直接切換,中間沒有什么其他東西。下面我們說如果存在導航欄控制器(UINavigationController)的情況下如何實現視圖切換。

  可以在story.board里拽一個UINavigationController,把它的根視圖設置成ViewController,將story.board里is initial View Controller勾選√,讓程序的入口從導航欄控制器進入。

  

  其他的和1里一樣。只是調用的方法有所改變,有導航欄控制器的情況下,調用的方法是:

  

ViewController.m中

 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

   FirstViewController *firstVC = [[FirstViewController alloc] init]; 

   [self.navigationController pushViewController:firstVC animated:YES];

}

這樣就行了,即使在FirstViewController.m中不寫方法,程序運行也會自帶有一個按鈕返回ViewController。如圖:

點擊Back就自動返回到上一級了。

但是也可以寫一個返回方法,系統是這個方法,寫不寫的區別在下面補充里面,個人覺得還是挺重要的關于這一點。

[self.navigationController pop...];建議自己嘗試一下。所以這里所用的方法總結下就是一個push,一個pop。

 

補充:

  首先說一下UINavigationController有一個屬性就是viewControllers,它是一個數組,存儲導航欄控制器的所有視圖控制器,也就是一個navigationController所有的viewController都在viewControllers里面。

  在沒有push到FirstViewController里面的時候,FirstViewController并不是navigationController的子控制器,當push到FirstViewController后,navigationController就新添加了一個子控制器FirstViewController。viewControllers里也就有了FirstViewController。如果不用pop方法pop回去的話,FirstViewController的navigationController就存在了,但使用了pop方法pop回去的話就又釋放掉了,navigationControllerd的viewControllers也就沒有FirstViewController了。

   注意:push和pop方法都是navigationController的方法,調用時候,一般用[self.navigationController ...];

  

  這就解釋了為什么一個導航欄控制器只有一個根控制器,其他的控制器是怎么添加上,怎么去除的了。

  最后,為什么沒用到SenconedViewController呢?留著自己再做做實驗吧。

 

初學iOS,如果有錯,還望不吝賜教。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
伊人伊成久久人综合网小说| 亚洲性av网站| 一本大道香蕉久在线播放29| 国产精品免费视频久久久| 欧美成人sm免费视频| 国产精品久久激情| 国产精品视频精品视频| 欧美另类极品videosbestfree| 亚洲的天堂在线中文字幕| 亚洲第一视频网站| 亚洲第一区第一页| 国产在线播放不卡| 一本一本久久a久久精品综合小说| 热久久视久久精品18亚洲精品| 亚洲图中文字幕| 91精品国产自产91精品| 久久国产一区二区三区| 欧美在线观看网址综合| 91精品国产自产在线观看永久| 亚洲亚裔videos黑人hd| 亚洲二区中文字幕| 91精品国产综合久久久久久久久| 亚洲一区二区久久久久久久| 欧美亚洲国产日韩2020| 日韩成人中文电影| 久久久久久中文字幕| 91高潮在线观看| 亚洲欧美国产精品| 久久久久久久久久亚洲| 51精品国产黑色丝袜高跟鞋| 欧美激情亚洲一区| 青青a在线精品免费观看| 欧美在线观看www| 一级做a爰片久久毛片美女图片| 国产精品福利在线观看| 欧美最猛性xxxxx(亚洲精品)| 久久综合色88| 精品国内产的精品视频在线观看| 亚洲精品国产欧美| 国产精品女人久久久久久| 久久免费观看视频| 亚洲日本中文字幕免费在线不卡| 久久久999精品视频| 欧美日韩国产一区中文午夜| 精品免费在线观看| 欧美理论电影在线观看| 亚洲新声在线观看| 668精品在线视频| 欧美午夜电影在线| 久久久久久久久久久亚洲| 欧美高清在线视频观看不卡| 国产在线精品一区免费香蕉| 亚洲精品不卡在线| 九九视频直播综合网| 成人亚洲激情网| 色综合亚洲精品激情狠狠| 亚洲精品自产拍| 欧美一级在线播放| 欧美日韩一区二区在线播放| 亚洲精品美女在线观看| 国产国语刺激对白av不卡| 91精品国产综合久久久久久久久| 日韩欧美精品在线观看| 国产精品扒开腿爽爽爽视频| 欧美激情久久久久久| 国产精品69久久久久| 久久久国产精品一区| 亚洲日本欧美中文幕| 久久久久久久久久久国产| 91人人爽人人爽人人精88v| 国产精品日韩久久久久| 国产欧美va欧美va香蕉在| 亚洲一区二区国产| 中文日韩在线观看| 国产美女扒开尿口久久久| 成人亚洲欧美一区二区三区| 欧美电影《睫毛膏》| 欧美日韩亚洲视频一区| 亚洲va欧美va国产综合久久| 2020欧美日韩在线视频| 欧美激情喷水视频| 国产综合香蕉五月婷在线| 久久久久久久av| 最近2019年好看中文字幕视频| 亚洲成人精品久久| 亚洲欧美日韩在线高清直播| 欧美午夜激情小视频| 亚洲精品少妇网址| 日韩视频第一页| 成人在线中文字幕| 91av免费观看91av精品在线| 欧美综合国产精品久久丁香| 国产精品青青在线观看爽香蕉| 日韩av在线网址| 国产精品第一视频| 国产精品午夜国产小视频| 亚洲色图欧美制服丝袜另类第一页| 久久精品99无色码中文字幕| 欧美精品成人在线| 在线亚洲午夜片av大片| 亚洲无av在线中文字幕| 久久久精品中文字幕| 精品动漫一区二区三区| 久久久久免费精品国产| 国产精品999999| 国产视频在线观看一区二区| 亚洲国产高清福利视频| 亚洲小视频在线观看| 久久久久久国产精品三级玉女聊斋| 久久久久久亚洲精品中文字幕| 欧美裸体xxxx极品少妇| www.国产精品一二区| 中文字幕一区日韩电影| 色琪琪综合男人的天堂aⅴ视频| 国产精品视频地址| 国产亚洲欧美日韩美女| 日韩在线观看免费高清| 久久人人爽人人爽人人片av高清| 一区二区三区四区在线观看视频| 国产成人啪精品视频免费网| 亚洲视频欧洲视频| 亚洲男人av在线| 欧美日韩国产一区二区三区| 青草成人免费视频| 成人网在线免费看| 久久夜色撩人精品| 国产精品露脸av在线| 91精品国产乱码久久久久久久久| 92裸体在线视频网站| www.日韩av.com| 美女久久久久久久| 欧美一区二区视频97| 欧美人成在线视频| 国产精品福利无圣光在线一区| 欧美成人小视频| 欧美在线影院在线视频| 欧美久久精品一级黑人c片| 欧美性资源免费| 欧美性在线视频| 国产精品久久久久久av| 欧美一区二区三区免费视| 91高清免费在线观看| 精品国产乱码久久久久酒店| 久久久精品一区二区三区| 亚洲激情免费观看| 日本成人免费在线| 亚洲精品在线观看www| 亚洲自拍偷拍色图| 亚洲一级免费视频| 色综合亚洲精品激情狠狠| 久久久久久成人精品| 日本最新高清不卡中文字幕| 国产欧美久久久久久| 日韩av影视综合网| 亚洲欧美日韩中文在线制服| 最近2019中文免费高清视频观看www99| 午夜精品蜜臀一区二区三区免费| 日韩高清人体午夜| 亚洲精品www久久久久久广东| 日韩中文字幕第一页| 欧美日韩国产一区二区| 日韩动漫免费观看电视剧高清| 欧美国产日韩中文字幕在线| 国产精品视频最多的网站|