[iOS基礎控件 - 6.11.4] storyboard 的 Segue

A.概念
storyboard中的跳轉事件連線,都是一個UIStoryboardSegue對象(Segue)
DA737EED-B13F-459B-88BD-D6BD0E637BB1
 
來源控制器
     觸發控制器
目標控制器
     跳轉到的控制器
 
17D21C75-B95D-4FD1-A4F9-CF199165146F
 
Segue的屬性:
每個Segue對象,都有3個屬性
惟一標識
@property (nonatomic, readonly) NSString *identifier;
來源控制器
@property (nonatomic, readonly) id sourceViewController;
目標控制器
@property (nonatomic, readonly) id destinationViewController;
 
Image(248)
 
B.種類
1.自動型
action segue
使用控件連線
不須要進行條件判斷的跳轉(好比按鈕)
D369BA63-5048-4B4A-8815-A7390A87C329
 
設置方法:按Control,拖線從控件(開關、按鈕等)到目標控制器
 
2.手動型 Manual
manual segue
使用控制器連線
須要進行必定的條件判斷的跳轉(使用代碼)
EB85687E-FCF4-4312-92D6-F6A919AA6D65
 
手動的Segue須要設置標識,在制定的時候在來源控制器執行Segue
Image(249)
 
sample:
1         // 根據Segue ID 執行跳轉
2         [self performSegueWithIdentifier:@"contactList" sender:nil];
 
3.傳遞數據
在Segue準備好,跳轉以前執行來源控制器的方法,使用成員屬性傳遞數據
prepareForSegue: sender:
sample:
 1 #pragma mark - Segue相關
 2 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
 3     // 取得目標控制器
 4     id controller = segue.destinationViewController;
 5    
 6     // 判斷跳轉目標
 7     if ([controller isKindOfClass:[AddViewController class]]) {
 8         // 若是是「添加聯繫人」
 9         AddViewController *addViewController = controller;
10         addViewController.delegate = self;
11     }
12    
13     if ([controller isKindOfClass:[EditViewController class]]) {
14         // 若是是「查看/編輯聯繫人」
15         EditViewController *editViewController = controller;
16        
17         // 取出數據
18         NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
19         editViewController.contact = self.contacts[indexPath.row];
20        
21         // 設置代理
22         editViewController.delegate = self;
23     }
24   
25 }
 
控制器之間的數據傳遞主要有2種狀況:順傳和逆傳
順傳
控制器的跳轉方向: A  C
數據的傳遞方向    : A  C
數據的傳遞方式    :  在A的prepareForSegue:sender:方法中根據segue參數取得destinationViewController, 也就是控制器C, 直接給控制器C傳遞數據
(要在C的viewDidLoad方法中取得數據,來賦值給界面上的UI控件)
 
逆傳
控制器的跳轉方向: A  C
數據的傳遞方向    : C  A
數據的傳遞方式    :  讓A成爲C的代理, 在C中調用A的代理方法,經過代理方法的參數傳遞數據給A
 
Image(250)
相關文章
相關標籤/搜索