UIView頁(yè)面 與UIViewController之間的跳轉(zhuǎn)

在正常的 控制器A頁(yè)面 跳轉(zhuǎn)到 控制器B頁(yè)面 的時(shí)候,通常用的是下面的方法:

[self.navigationController pushViewController:? animated: ];

[self.navigationController popViewControllerAnimated:];

[self presentViewController:? animated:? completion: ];

[self dismissViewControllerAnimated:? completion:];

但是從UIView頁(yè)面跳轉(zhuǎn)到UIViewController頁(yè)面之間,是沒(méi)有上述方法的。鑒于此,特收集整理了以下:

流程:在一個(gè)UIViewController(AViewController)彈出一個(gè)UIView,再?gòu)腢IView跳轉(zhuǎn)到另一個(gè)控制器(BViewController)。

UIView跳轉(zhuǎn)到UIViewController


第一種方法:

首先在UIView的聲明文件中添加:(定義一個(gè)控制器屬性)

@property (nonatomic,strong) UIViewController * viewcontroller;

其次,在UIView的實(shí)現(xiàn)文件中的Button的點(diǎn)擊事件中

-(void)BtnClick{

BViewController * bviewcontroller = [[AViewController alloc] init];

[self. viewcontroller.navigationController pushViewController: bviewcontroller? animated:YES];

}

之后在在AViewcontroller 彈出UIVew處,寫(xiě)上

view.viewcontroller=self;


第二種:直接在視圖上跳轉(zhuǎn)。只要在視圖中直接的跳轉(zhuǎn)界面。說(shuō)白了就是調(diào)出UIApplication的根控制器,然后也是以導(dǎo)航控制器的形式進(jìn)行跳轉(zhuǎn)。簡(jiǎn)單實(shí)用(當(dāng)然是在不需要進(jìn)行傳值等操作的時(shí)候。)

UINavigationController *nav = (UINavigationController *)[UIApplication sharedApplication].keyWindow.rootViewController;

BViewController *bviewcontroller = [[BViewController alloc]init];

[nav pushViewController:bviewcontroller animated:YES];


第三種:運(yùn)用代理,塊,通知的方法:

具體代碼見(jiàn):UIView頁(yè)面跳轉(zhuǎn)到UIViewController

b、代理跳轉(zhuǎn)。通常我們?cè)谔D(zhuǎn)中經(jīng)常是通過(guò)你點(diǎn)擊了某個(gè)事件或者某個(gè)操作使你進(jìn)行控制器之間的跳轉(zhuǎn)。那么我們可以在這個(gè)按鈕事件或者操作里面寫(xiě)一個(gè)代理進(jìn)行跳轉(zhuǎn)或者傳值。

c、block跳轉(zhuǎn)。代碼更加的簡(jiǎn)潔。只需要在視圖A中進(jìn)行一次聲明然后在控制器B 中進(jìn)行跳轉(zhuǎn)代碼的實(shí)現(xiàn)。但是需要知道的是無(wú)論是代理還是block我們都是需要視圖和控制器之間存在著聯(lián)系的,不然沒(méi)有辦法去調(diào)用代理或者block。

d、通知跳轉(zhuǎn)。通知在我看來(lái)就是比代理好的一點(diǎn)就是不需要視圖和控制器之間有必然的關(guān)聯(lián)就可以調(diào)用(當(dāng)然他們最大的區(qū)別是一個(gè)可以多對(duì)多傳值)。

以上,是通過(guò)網(wǎng)上收集加上自己整理的,只為將知識(shí)整理一下,做個(gè)筆記,分享。

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容