iOS開發中使用故事板進行開發是非常高效的一種方式,雖然有這樣那樣的問題,但是不得不承認,使用sb可以在最短的時間內完成整個項目的布局,節約開發者大量的時間,而且便於修改,非常直觀,雖然可能不太靈活,但是方便!
下面就來總結下常用的跳轉方式:
一、純代碼界面跳轉方式
1.導航控制器(UINavigationController)
[self.navigationController pushViewController:NewVC animated:YES];//跳轉到下一界面 [self.navigationController popViewControllerAnimated:YES];//返回上一界面
2.使用模態彈出的方式(UIViewController)
[self presentViewController:NewVC animated:YES completion:nil];//present到下一界面 [self dismissViewControllerAnimated:YES completion:nil];//推出
3.StroryBoard的連線跳轉代碼實現,首先在storyBoard上創建兩個視圖,中間用線連接,選中中間的線段設置線的Identifider,如下圖:
1 [self performSegueWithIdentifier:@"NewVC" sender:nil];
傳值方式:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ //通過segue判斷要跳轉到哪個頁面 if ([segue.identifier isEqualToString:@"NewVC"]) { XXXController * destinaVC = segue.destinationViewController; } }
跳轉到目標視圖之后返回根據UINavigationController和UIViewController判斷,可以根據情況自定返回方式
二、StoryBoard界面跳轉
1.storyboard生成ViewController並添加按鈕+storyboard中Action Segue使用modal跳轉到另一個storyboard生成的ViewController;-->正常,可以進行跳轉
2.storyboard生成ViewController並添加按鈕+storyboard中在第一個ViewController中生成導航欄+storyboard中Action Segue使用push跳轉到另一個storyboard生成的ViewController;-->正常,可以進行跳轉,並可以使用導航欄自帶的返回按鈕返回上一個頁面
3.storyboard生成ViewController並添加按鈕+storyboard中不添加任何導航欄+使用presentViewController跳轉到另一個xib生成的ViewController;-->正常,可以進行跳轉
4.storyboard生成ViewController並添加按鈕+storyboard中添加導航欄+使用pushViewController跳轉到另一個xib生成的ViewController;-->正常,可以進行跳轉,並可以使用導航欄自帶的返回按鈕返回上一個頁面
5.xib生成ViewController並添加按鈕+代碼生成導航欄(重點)+使用pushViewController跳轉到另一個xib生成的ViewController;-->正常,可以進行跳轉,並可以使用導航欄自帶的返回按鈕返回上一個頁面
三、系統的方法,利用id加載的方式來進行跳轉,代碼如下:
UIStoryboard *mainSB = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; SelfDetailViewController *selfdetailVC = [mainSB instantiateViewControllerWithIdentifier:@"ChangeSecondPWViewController"]; [self.navigationController pushViewController:selfdetailVC animated:YES];