iOS开发中视图相关的小笔记:push、modal、popover、replace、custom
在storyboard中,segue有幾種不同的類(lèi)型,在iphone和ipad的開(kāi)發(fā)中,segue的類(lèi)型是不同的。
在iphone中,segue有:push,modal,和custom三種不同的類(lèi)型,這些類(lèi)型的區(qū)別在與新頁(yè)面出現(xiàn)的方式。
而在ipad中,有push,modal,popover,replace和custom五種不同的類(lèi)型。
modal 模態(tài)轉(zhuǎn)換
最常用的場(chǎng)景,新的場(chǎng)景完全蓋住了舊的那個(gè)。用戶(hù)無(wú)法再與上一個(gè)場(chǎng)景交互,除非他們先關(guān)閉這個(gè)場(chǎng)景。
是在viewController中的標(biāo)準(zhǔn)切換的方式,包括淡出什么的,可以選切換動(dòng)畫(huà)。
Modalview:就是會(huì)彈出一個(gè)view,你只能在該view上操作,而不能切換到其他view,除非你關(guān)閉了modalview.
Modal View對(duì)應(yīng)的segue type就是modal segue。
Push類(lèi)型一般是需要頭一個(gè)界面是個(gè)Navigation Controller的。
是在navigation View Controller中下一級(jí)時(shí)使用的那種從右側(cè)劃入的方式
popover類(lèi)型,就是采用浮動(dòng)窗的形式把新頁(yè)面展示出來(lái)
replace類(lèi)型就是替換
custom就是自定義跳轉(zhuǎn)方式啦。
視圖之間的數(shù)據(jù)傳遞
當(dāng)你從當(dāng)前場(chǎng)景中觸發(fā)一個(gè)segue的時(shí)候,系統(tǒng)會(huì)自動(dòng)調(diào)用prepareForSegue:sender:這個(gè)方法。如果你想從一個(gè)界面切換到里另一個(gè)界面的時(shí)候傳遞數(shù)據(jù),你應(yīng)該override這個(gè)方法。
A -> B
想把數(shù)據(jù)? NSString A_data?? 從AController傳到BController,則在BController中
@property 一個(gè)NSString data
然后在AController中添加方法
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
??? NSLog(@"The segue id is %@", segue.identifier );
??? UIViewController *destination = segue.destinationViewController; ?
??? if ([destination respondsToSelector:@selector(setData:)])
??? {
??????? [destination setValue:@"這是要傳遞的數(shù)據(jù)" forKey:@"data"];
??? }? ?
}
之后,Bcontroller中的data屬性,就接收到數(shù)據(jù)了。
ViewController之間的跳轉(zhuǎn)
1、如果在 Storyboard中當(dāng)前的 ViewController和要跳轉(zhuǎn)的ViewController之間的segue存在,則可以執(zhí)行performSegueWithIdentifier:sender:這個(gè)方法實(shí)現(xiàn)跳轉(zhuǎn)。
2、如果目標(biāo)ViewController存在Storyboard中,但是沒(méi)有segue。你可以通過(guò)UIStoryboard的 instantiateViewControllerWithIdentifier:這個(gè)方法獲取到它,然后再用你想要的方式實(shí)現(xiàn)跳轉(zhuǎn),如:壓棧。
3、如果目標(biāo)ViewController不存在,那就去創(chuàng)建它吧。
轉(zhuǎn)載于:https://www.cnblogs.com/Free-Thinker/p/5001931.html
總結(jié)
以上是生活随笔為你收集整理的iOS开发中视图相关的小笔记:push、modal、popover、replace、custom的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 程序员有趣的面试智力题(转)
- 下一篇: linux下测试宽带速度