本文基于OC語言,淺淺探索一下iOS幾種跳轉方式。先看一下本人做的思維導圖。
iOS分可視化開發(fā)(storyboard和xib)和代碼開發(fā)兩種方式。當我們只使用某一種開發(fā)方式進行開發(fā)的時候,界面跳轉可能不會遇到什么問題。但是當我們混合開發(fā)的時候,界面間的跳轉有時候會遇到一些莫名其妙的問題。而實際開發(fā)項目中,經常因實際需求混合各種開發(fā)方式。因此,本人羅列了一下界面間跳轉可能遇到的九種情況。經過測試,實際上有三種跳轉的寫法。分別是:
1.xxx界面向storyboard界面跳轉
2.xxx界面向xib界面跳轉
3.xxx界面向代碼界面跳轉
現在,我們來一一測試一下。xxx界面向storyboard界面跳轉。先創(chuàng)建一個工程,如圖:
然后再新建一個storyboard
storyboard創(chuàng)建完是空白的
我們要拖一個UIViewcontroller進storyboard內
拖完之后的界面我們就比較熟悉了
再創(chuàng)建一個UIVIewController的類
選中故事板的類,把剛剛創(chuàng)建的類和storyboard的UIVIewcontroller關聯(lián)起來
再順便寫一下storyboard的ID,等下會用到
關聯(lián)完之后我們回到第一個UIViewController寫跳轉方法,為了方便展示跳轉效果,我們寫個btn
//故事板跳故事板
UIButton*btn = [UIButtonbuttonWithType:UIButtonTypeCustom];
[self.viewaddSubview:btn];
btn.backgroundColor= [UIColorredColor];
[btnaddTarget:selfaction:@selector(btnClick)forControlEvents:UIControlEventTouchDragInside];
btn.frame=CGRectMake(100,100,100,100);
接下來我們在btn里面寫跳轉方法
//故事板--跳到--》故事板
- (void)btnClick
{
UIStoryboard*myStoryboard = [UIStoryboardstoryboardWithName:@"Second"bundle:nil];
UIViewController*secondVC = [myStoryboard ?instantiateViewControllerWithIdentifier:@"secondViewController"];
[selfpresentViewController:secondVCanimated:YEScompletion:nil];
NSLog(@"跳轉");
}
這樣就完成了跳轉,我們運行測試一下試試
這樣我們就實現了xxx界面向storyboard界面跳轉。下面我們來看看另一種跳轉方式 xxx界面向xib界面跳轉
首先,我們先創(chuàng)建一個xib界面
創(chuàng)建完,我們開始來準備跳轉,跳轉之前給xib設置一個背景色,方便區(qū)分
好了,回到最初的ViewController來實現跳轉到xib文件去,首先,導入xib那個類的頭文件,還有再寫個按鈕來實現跳轉
#import"XIBViewController.h"
//故事板跳xib
UIButton*btnXIB = [UIButtonbuttonWithType:UIButtonTypeCustom];
[self.viewaddSubview:btnXIB];
btnXIB.backgroundColor= [UIColorblueColor];
[btnXIBaddTarget:selfaction:@selector(btnXIBClick)forControlEvents:UIControlEventTouchDragInside];
btnXIB.frame=CGRectMake(100,210,100,100);
來實現跳轉一下
//故事板--跳到--》xib
- (void)btnXIBClick
{
XIBViewController*xibVC=[[XIBViewControlleralloc]initWithNibName:@"XIBViewController"bundle:nil];
[selfpresentViewController:xibVCanimated:YEScompletion:nil];
}
我們來運行測試一下效果。
藍色按鈕是跳轉到xib界面的,我們點擊一下看看
點擊后實現跳轉。我們這樣就實現了xxx界面向xib界面跳轉。最后我們再來看看最普遍的跳轉方式 xxx界面向代碼界面跳轉。
同樣的,先創(chuàng)建一個UIViewController,我們修改一下它的背景顏色為綠色,然后進行跳轉
self.view.backgroundColor=[UIColorgreenColor];
回到UIViewController來寫跳轉方式
#import"CodeViewController.h"
//故事板跳code
UIButton*btnCode = [UIButtonbuttonWithType:UIButtonTypeCustom];
[self.viewaddSubview:btnCode];
btnCode.backgroundColor= [UIColorpurpleColor];
[btnCodeaddTarget:selfaction:@selector(btnCodeClick)forControlEvents:UIControlEventTouchDragInside];
btnCode.frame=CGRectMake(100,320,100,100);
//故事板--跳到--》code
- (void)btnCodeClick
{
CodeViewController*codeVC = [[CodeViewControlleralloc]init];
[selfpresentViewController:codeVCanimated:YEScompletion:nil];
}
運行測試一下
點擊跳轉按鈕
成功實現了xxx界面向代碼界面跳轉。以上就是iOS界面的幾種不同開發(fā)界面之間的跳轉方式。希望對看到此博客的人有所幫助。