你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS開辟中ViewController的頁面跳轉和彈出模態

iOS開辟中ViewController的頁面跳轉和彈出模態

編輯:IOS開發綜合

ViewController 頁面跳轉
從一個Controller跳轉到另外一個Controller時,普通有以下2種:
1、應用UINavigationController,挪用pushViewController,停止跳轉;這類采取壓棧和出棧的方法,停止Controller的治理。挪用popViewControllerAnimated辦法可以前往。

    PickImageViewController *ickImageViewController = [[PickImageViewController alloc] init];
    [self.navigationController pushViewController: ickImageViewController animated:true];
    [ickImageViewController release];


2、應用UIViewController本身的presentModalViewController,停止跳轉;挪用dismissModalViewControllerAnimated辦法可以前往。

    PickImageViewController *ickImageViewController = [[PickImageViewController alloc] init];
    [self presentModalViewController:ickImageViewController animated:YES];
//前往
[self dismissModalViewControllerAnimated:YES];


Present ViewController Modally 
 
1、重要用處
 
  彈出模態ViewController是IOS釀成中很有效的一個技巧,UIKit供給的一些專門用於模態顯示的ViewController,如UIImagePickerController等。彈出模態ViewController重要應用於一下這幾種情況:
 
  1、搜集用戶輸出信息
 
  2、暫時出現一些內容
 
  3、暫時轉變任務形式
 
  4、響應裝備偏向變更(用於針對分歧偏向分離是想兩個ViewController的情形)
 
  5、顯示一個新的view層級
 
  這幾種情況都邑臨時中止法式正常的履行流程,重要感化是搜集或許顯示一些信息。
 
2、幾個概念和經常使用設置
 
1、presenting view controller Vs presented view controller
 
  當我們在view controller A中模態顯示view controller B的時刻,A就充任presenting view controller(彈出VC),而B就是presented view controller(被彈出VC)。官方文檔建議這二者之間經由過程delegate完成交互,假如應用過UIImagePickerController從體系相冊拔取照片或許攝影,我們可以發明imagePickerController和彈出它的VC之間就是經由過程UIImagePickerControllerDelegate完成交互的。是以我們在現實運用用,最好也遵照這個准繩,在被彈出的VC中界說delegate,然後在彈出VC中完成該署理,如許便可以比擬便利的完成二者之間的交互。
 
2、Modal Presentation Styles(彈出作風)
 
  經由過程設置presenting VC的modalPresentationStyle屬性,我們可以設置彈出View Controller時的作風,有以下四種作風,其界說以下:

typedef enum {
    UIModalPresentationFullScreen = 0,
    UIModalPresentationPageSheet,
    UIModalPresentationFormSheet,
    UIModalPresentationCurrentContext,
} UIModalPresentationStyle;
  UIModalPresentationFullScreen代表彈出VC時,presented VC充斥全屏,假如彈出VC的wantsFullScreenLayout設置為YES的,則會填充到狀況欄下邊,不然不會填充到狀況欄之下。
 
  UIModalPresentationPageSheet代表彈出是彈出VC時,presented VC的高度和以後屏幕高度雷同,寬度和豎屏形式下屏幕寬度雷同,殘剩未籠罩區域將會變暗並阻攔用戶點擊,這類彈出形式下,豎屏時跟UIModalPresentationFullScreen的後果一樣,橫屏時刻雙方則會留下變暗的區域。
 
  UIModalPresentationFormSheet這類形式下,presented VC的高度和寬度均會小於屏幕尺寸,presented VC居中顯示,周圍留下變暗區域。
 
  UIModalPresentationCurrentContext這類形式下,presented VC的彈出方法和presenting VC的父VC的方法雷同。
 
  這四種方法在iPad下面一切有用,但在iPhone和iPod touch下面體系一直已UIModalPresentationFullScreen形式顯示presented VC。
 
3、Modal Transition Style(彈出時的動畫作風)
 
  經由過程設置設置presented VC的modalTransitionStyle屬性,我們可以設置彈出presented VC時場景切換動畫的作風,其界說以下:

typedef enum {
        UIModalTransitionStyleCoverVertical = 0,
        UIModalTransitionStyleFlipHorizontal,
        UIModalTransitionStyleCrossDissolve,
        UIModalTransitionStylePartialCurl,
} UIModalTransitionStyle;
  我們可以看到有從底部滑入,程度翻轉進入,穿插消融和翻頁這四種作風可選。這四種作風在不受裝備的限制,即不論是iPhone照樣iPad都邑依據我們指定的作風顯示轉場後果。
 
4、Dismiss Modal ViewController(消逝彈出的VC)
 
  消逝presented VC,我們可以經由過程挪用以下兩個函數中的任何一個來完成

dismissModalViewControllerAnimated:                 // 將要放棄,不贊同持續應用
dismissViewControllerAnimated:completion:
  誰來挪用這消逝presented VC的這個辦法:准確的做法是“誰淨化誰管理”,即presenting VC挪用下面的辦法來撤消presented VC的顯示。如許做有一個利益,假如一個VC真不消戶做的分歧選擇能夠彈出分歧的view controller,當不再須要顯示被彈出的view controller的時刻,直接挪用[self dismissModalViewControllerAnimated]便可使之消逝,而不消去關懷其詳細顯示的哪一類view controller。固然體系在這裡做了優化,當我們在presented VC外面挪用下面的辦法的時刻,體系會主動的將這個新聞傳遞到響應的presenting VC中,如許便可以完成不論誰彈出了本身,當不再須要的時刻直接將本身消逝失落的功效。在運用中詳細要采取那種要看詳細情形,假如presented VC須要和presenting VC稀有據傳遞的話,建議在presenting VC完成的署理函數中dismiss彈出的view controller。

【iOS開辟中ViewController的頁面跳轉和彈出模態】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved