[ SWIFT ] - 史丹福 StandFord-CS193P-課程15-心得分享-20150921

[ SWIFT ] - 史丹福 StandFord-CS193P-課程15-心得分享-20150921
課程重點:Modal Segue & Popover Segue
※本次課程重點除了Modal View Controller之外,最重要的是老師示範了整個App設計過程中應該考慮的重點,例如:ipad與iphone中Modal View Controller應該要用不同方式呈現等等!


Modal Segue:主要用來處理螢幕上的內容。
※Modal Segue會佔據整個屏幕,所以使用的使用一定要小心,提前做好返回的處理,使用Modal Segue的好處是在執行某項操作前必須取得資訊,例如:以alert和actionsheet方式彈出視窗請用戶回答問題。

※Modal View Controller可以被放入另一個Modal View Controller中。

範例:
手機中的聯絡人頁面,點擊右上角的加號會出現一個由下往上滑加入聯絡人的畫面,整個頁面的划出方式就是Modal Segue。

通常Modal Segue中的取消按鈕會取消當前的操作,而確定按鈕會提交當前的操作。
注意Modal Segue生成的MVC也可以被放入另一個Modal Segue生成的MVC,比如增加聯繫人頁面中的增加聯繫人頭像按鈕也是一個Modal Segue的MVC。

如何設置一個 Modal Segue
Modal Segue有2種設置方式:
(1)最常用:直接在StoryBoard中按著 Ctrl+拖曳,拖曳後選擇present modally
(2)透過程式碼產生:
在連線的時候選擇Modal,如果不是通過按鈕調用segue,你可以在代碼中直接調用performSegue方法,或者func presentViewController方法。

透過UIModalTransitionStyle,可設定view出現或離開的方式,參數:modalPresentationStyle:告訴view要以哪種Modal方式呈現,支援的方式種類如下:

.FullScreen:佔滿螢幕,不可與背後螢幕互動
.OverFullScreen:佔滿螢幕但可與下面螢幕互動
.Popover:彈出一個視窗
.FormSheet:小視窗(當希望彈出的視窗不要佔住整個螢幕時可以以小視窗方式呈現)

有時不希望透過按鈕來呈現Modal View Controller,而是透過其他active,例如:MapView中希望有一個callout按鈕
 

如何透過Modal Segue返回MVC
使用Unwind方式來返回MVC,因為使用Unwind Segue會自動移除並返回原本的view。
如果不是Unwind Segue,而是其他Segue則需要透過dismissViewControllerAnimated來返回MVC



Modal Segue的動畫效果
Modal Segue預設的呈現方式為由下往上滑的方式呈現(.CoverVertical),其餘呈現方式如下:
.FlipHorizontal:正反面翻轉
.PartialCurl:由角落一角翻起(翻頁效果)
.CrossDissolve:淡入淡出

留言

熱門文章