iOS-基礎知識--UIStoryboardSegue簡單總結

**會當凌絕頂,一覽眾山小!**<龍蝦小兵>

1.segue:可視化編程中連接兩個頁面的線條,稱之為 segue。
2.iPhoneGUI開發(fā)中 segue類型主要有三種,包括 push、modal、custom。
在iPad中,segue有(5種):push、modal、popover、replace、custom類型
3.其中custom需要我們自定義 segue來完成頁面間跳轉。
4.segue 有三個重要屬性:標識符、源控制器、 目標控制器。

  • modal類型(模態(tài)轉換)
         1. 最常用的場景,新的場景完全蓋住了舊的那個。用戶無法與上一個場景交互,除非他們先關閉這個場景。
        2.它是在viewControllers中的標準切換方式,包括淡出什么的,可以切換動畫。
        3.ModalView:就是會彈出一個view,你只能在該view上操作,而不能切換到其他的view,除非你關閉了modalView。
        4.ModalView對應的segue type就是modal segue。在彈出的modalView里操作完成后,就應該dismiss the modal view scene然后切換后原視圖。
  • Push類型:
        1.一般需要頭一個界面是Navigation Controller的,它是在navigation View Controller中下一級時使用的那種從右側劃入的方式。
        2.該類型是和navigation viewcontrollers一起使用。
  • Popover類型:采用浮動窗口的形式把新頁面顯示出來。
  • Replace類型:替換當期的scene。

自定義segue步驟:

步驟一 : 新建一個類繼承 UIStoryboardSegue
步驟 二: 選中前 個控制器,按住control鼠標 標輔助完成連線,選 擇custom。
步驟三: 選中 定義 segue,設置 segue的identifier 以及關聯(lián)類。
步驟四: 在 segue類里重寫perform方法(界 間跳轉默認執(zhí)行的方法), 自定義跳轉效果。

代碼部分:在自定義的繼于 UIStoryboardSegue類實現(xiàn)部分

// 跳轉時, 定義segue會自動觸發(fā)此法(重寫的系統(tǒng)方法)
/ / 這是為了跳轉也可以弄成push或者模態(tài)
- (void)perform
{
//獲取源控制器 (記得要引入目標和源視圖控制器)

   UIViewController1 *v1 = (UIViewController*)self.sourceViewController;

//獲取目標控制器

  UIViewController2 *v2 = (UIViewController*)self.destinationViewController;

// 自定義頁面切換效果
/ / 在動畫過程中,首先將 fromView 從父視圖中刪除,然后將 toView 添加,就是做了一個替換操作。
/ / FromView 需要移除的視圖
// toView 需要顯示的視圖
// duration:動畫持續(xù)時間
/ / options 動畫類型

     [UIView transitionFromView:v1.view toView:v2.view duration:10 options:UIViewAnimationOptionTransitionCurlDowncompletion:^(BOOL finished) {

//動畫完成后執(zhí) 的部分
// 動畫只是完成了視圖的切換還要使用push或者模態(tài)將視圖控制器切換}];

   [v1.navigationController pushViewController:vc2 animated:1]
  }

還可以自定義一個push模式(多此一舉只為了演示這個方法)

  - (void)perform{

SourceViewController *vc = (InformationViewController *)self.sourceViewController;
DestinationViewController *vc1 = (TableTableViewController *)self.destinationViewController;
[vc.navigationController pushViewController:vc1 animated:1];
   }

頁面跳轉傳值


storyboard界面間跳轉會執(zhí)

// 視圖控制器里面實現(xiàn)

   - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 方法, 方便界面間數(shù)據(jù)統(tǒng)一管理。

? 依據(jù)不同的segue標識符來完成數(shù)據(jù)處理。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

   CustomViewController *customVC = (CustomViewController*)segue.destinationViewController;

// @“push”這個就是Segue ID 自己的identifier區(qū)分好

if ([segue.identifier isEqualToString:@"push"]) {
    customVC.tempString = self.textField.text;

  }else{ NSLog(@"其他情況處理、、、");

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容