IOS(swift)-ViewController·頁面跳轉

 

針對手寫頁面及storyboard製做頁面,使用代碼進行頁面跳轉的兩種方法。併發

▪ 手寫頁面:動畫

var vc = ViewController() 
self.presentViewController(vc, animated: true, completion: nil)

▪ storyboard製做頁面url

var sb = UIStoryboard(name: "Main", bundle:nil)  
var vc = sb.instantiateViewControllerWithIdentifier("VC") as ViewController
//VC爲該界面storyboardID,Main.storyboard中選中該界面View,Identifier inspector中修改
self.presentViewController(vc, animated: true, completion: nil)
self.performSegueWithIdentifier("VC", sender: nil)

多個場景之間切換的樣式(Style)總共有5個:

Modal(模態)spa

-- 過渡到另外一個場景,以完成一項任務。任務完成後,將關閉該場景,並返回到原來的場景。code

Push(壓入)orm

-- 建立一個場景鏈,用戶可在其中先後移動。用於導航視圖控制器。對象

Replace(替換,僅適用於iPad)ip

-- 替換當前場景,用於一些iPad特有的視圖控制器。it

Popover(彈出框,僅適用於iPad) --io

一個帶箭頭的彈出框。

Custome(自定義)

-- 經過編譯在場景之間進行自定義過渡。

過渡類型(Transition)是從一個場景切換到另外一個場景時播放的動畫。有4個選項:

Cover Vertical

-- 新場景從下向上移動,逐漸覆蓋舊場景。

Flip Horizontal

-- 視圖水平翻轉,以顯示背面的新場景。

Cross Dissolve

-- 舊場景淡出,新場景淡入。

Partial Curl

-- 舊場景像書頁同樣翻開,顯示下面的新場景。

在iPad應用程序中,還會多出一個Presentation屬性,它決定了模態視圖在屏幕上的顯示方式。有4種顯示樣式:

Form Sheet(表單)

-- 將場景調整到比屏幕小(無論朝向),並在當前場景後面顯示原始場景,這幾乎至關於在一個iPad窗口中顯示。

Page Sheet(頁面)

-- 調整場景大小,使其以縱向格式顯示。Full

Screen(全屏)

-- 調整場景大小,使其覆蓋整個屏幕。

Current Context(當前上下文)

-- 以原始場景的顯示方式展現場景。

要使用在故事板中定義的切換到另外一個場景,但又不想自動觸發該切換,可以使用UIViewController的實例方法performSegueWithIdentifier:sender。調用該方法後,切換就將啓動併發生過渡。應將參數sender設置爲啓動切換的對象。這樣在切換期間,就可肯定是哪一個對象啓動了切換。

- (IBAction)toConfigHandler:(id)sender { 
//執行名爲"toConfig"的切換 
[self performSegueWithIdentifier:@"toConfig" sender:self];}

調用UIViewController的方法dismissViewControllerAnimated:completion,能夠關閉當前模態視圖,返回到原始場景。completion是一個可選參數,用於指定過渡完畢後將執行的代碼塊。

- (IBAction)returnToMainHandler:(id)sender { 
//關閉模態場景 
[self dismissViewControllerAnimated:YES completion:nil];}

以純代碼的方式建立模態場景切換:

//獲取"MyMain.storyboard"故事板的引用UIStoryboard *mainStoryboard =[UIStoryboard storyboardWithName:@"MyMain" bundle:nil];

//實例化Identifier爲"myConfig"的視圖控制器
ConfigViewController *configVC = [mainStoryboard instantiateViewControllerWithIdentifier:@"myConfig"];

//爲視圖控制器設置過渡類型
configVC.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

//爲視圖控制器設置顯示樣式
configVC.modalPresentationStyle = UIModalPresentationFullScreen;

//顯示視圖
[self presentViewController:configVC animated:YES completion:nil];

視圖的modalTransitionStyle(過渡類型)屬性有如下枚舉值:

UIModalTransitionStyleCoverVertical

-- 默認值,從下向上覆蓋

UIModalTransitionStyleFlipHorizontal

-- 水平翻轉

UIModalTransitionStyleCrossDissolve

-- 淡入淡出

UIModalTransitionStylePartialCurl

-- 像書頁同樣翻開以顯示下面的視圖

視圖的modalPresentationStyle(顯示樣式)屬性有如下枚舉值:

UIModalPresentationFullScreen

-- 默認值,如何旋轉都是全屏,iPhone下僅有這一個樣式有效

UIModalPresentationFormSheet

-- 寬度和高度均會小於屏幕尺寸,居中顯示,四周是變暗區域。僅適用於

iPadUIModalPresentationPageSheet

-- 在豎屏下和UIModalPresentationFullScreen表現同樣,橫屏下高度和當前屏幕高度相同,寬度和豎屏模式下屏幕寬度相同,剩餘未覆蓋區域將會變暗並阻止用戶點擊

UIModalPresentationCurrentContext

-- 與父視圖的顯示樣式相同

相關文章
相關標籤/搜索