前言
蘋果推出故事版很久了,一直沒有深入學習過。最近打算嘗試用StoryBoard做高保真交互App原型,決定學習下。相對於IB來講,StoryBoard幾乎不用手寫代碼,便能實現頁面交互,這一點很適合會Xcode的同學用來做快速原型開發。
實現簡單的頁面跳轉
新建工程,選擇Single View Application,Xcode生成的工程模板中會自動使用StoryBoard.打開Main.storyboard文件,可以像IB一樣,拖拽視圖對象到ViewController的View上。如圖,簡單的加一個頁面標示UILabel標籤和一個UIButton按鈕:
向主窗口中拖拽一個UIViewController對象,作爲第二個頁面,按住Ctrl鍵,拖拽按鈕連線新添加的頁面
鬆開鼠標在彈出的黑色懸浮框列表中選擇Action Segue的類型爲:Modal,這樣在點擊橙色按鈕之後,頁面2將從頁面1底部彈出
頁面2返回頁面1,在頁面2上添加一個按鈕,在ViewController.m文件中實現一個帶UIStoryBoardSegue類型參數的IBAction方法
- (IBAction)unwindSegue:(UIStoryboardSegue *)sender{
NSLog(@"unwindSegue %@", sender);
}
Ctrl連線頁面2上的按鈕到ViewController的Exit,並關聯unwindSegue:方法
模擬器中的運行效果:
代碼實現
頁面1跳轉頁面2:先清除按鈕連線,然後Ctrl連線ViewController到ViewController2,選擇Modal類型
選中ViewController與ViewController2之間的連接,並設置連接的Identifier爲:2vc2
在ViewController.m中添加代碼,並關聯按鈕
- (IBAction)presentVC2:(id)sender {
NSLog(@"代碼實現頁面跳轉");
[self performSegueWithIdentifier:@"2vc2" sender:sender];
}
頁面2返回頁面1,先清除按鈕連線,然後在ViewController2.m中添加IBAction方法並關聯返回按鈕:
- (IBAction)backAction:(id)sender {
[self dismissViewControllerAnimated:YES completion:nil];
}