Segue幾種類型(Show、Show Detail、Present modally、Present as Popover)的區(qū)別

本文不夠全面,建議查看View Controller 轉(zhuǎn)場這篇文章。

在iOS中,segue的class為UIStoryboardSegue,用于storyboard中不同視圖控制器間轉(zhuǎn)場,即從一個視圖控制器轉(zhuǎn)場到另一個視圖控制器。Segue的起點必須是一個view或者定義某些操作的對象,如:UIBarButtonItem、UIControlUIGestureRecognizer。

Segue分為以下幾種類型,其中Push、Modal、Popover和Replace已棄用。

  • Show
  • Show Detail
  • Present Modally
  • Present as Popover
  • Custom
  • Push
  • Modal
  • Popover
  • Replace

在iPhone中有Show、Show Detail、Present Modally、Custom四種不同類型,iPad中有Show、Show Detail、Present Modally、Present as Popover、Custom五種不同類型。

Show

  • 使用方法showViewController: sender:
  • 該方法為視圖控制器提供了自適應、靈活的呈現(xiàn)方式。
  • 用在UINavigationController堆棧視圖時,presentedViewController進入時由右向左,退出時由左向右。新壓入的視圖控制器有返回按鈕,單擊可以返回。
  • 用在UIViewController實例時,和presentViewController: animated: completion:效果一致。

Show Detail

  • 使用方法showDetailViewController: sender:
  • 只適用于嵌入在UISplitViewController對象內(nèi)的視圖控制器,分割控制器用以替換詳細控制器(DetailViewController)。
  • 不提供返回按鈕。
  • 用于UISplitViewController以外的控制器時,和showViewController:sender用法一樣。

Present Modally

  • 使用方法presentViewController: animated: completion:
  • 有多種不同呈現(xiàn)方式,可根據(jù)需要設置。在iPhone中,一般以動畫的形式自下向上覆蓋整個屏幕,用戶無法與上一個視圖交互,除非關(guān)閉當前視圖;在iPad中,常見呈現(xiàn)為一個中心框,中心框以動畫形式自下向上彈出,同時使底層視圖控制器變暗。
  • 不提供返回按鈕。

Present as Popover

在iPad中,目標視圖以浮動窗樣式呈現(xiàn),點擊目標視圖以外區(qū)域,目標視圖消失;在iPhone中,默認目標視圖以模態(tài)覆蓋整個屏幕。

下面GIF演示了Show和Present在新頁面出現(xiàn)方式的不同:

Segue.gif

presentViewController: animated: completion: 是用另一個視圖控制器替換自己,會根據(jù)presentationStyle選擇呈現(xiàn)方式。退出時使用dismissViewControllerAnimated: completion: 方法。

showDetailViewController: sender:是一種自適應方法,會根據(jù)當前狀態(tài)進行不同操作,對應退出方法也不同。

參考資料:

  1. View Controller 轉(zhuǎn)場
  2. View Controller Programming Guide for iOS---Using Segues
  3. dismissViewController vs popViewController
  4. What's the difference between all the Selection Segues

本文地址:http://www.itdecent.cn/p/36a48e47555d
歡迎更多指正:https://github.com/pro648/tips/wiki

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容