1. - (void)presentViewController:(UIViewController*)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion
<pre>
MainVC *mainVC = [[MainVC alloc] init];
[self presentViewController:mainVC animated:YES completion:nil];
</pre>
這種方式一般出現(xiàn)在需要使用者完成某件事情活逆,如輸入密碼露该、增加資料等操作后辛润,才能(回到跳轉(zhuǎn)前的控制器)繼續(xù)濒生。例如系統(tǒng)的WIFI連接輸入密碼提示。默認(rèn)動(dòng)畫(huà)是從下至上控乾。
2. - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
這種方式一般是使用者瀏覽資料么介,繼而可以前進(jìn)到下一個(gè)頁(yè)面或回到上一個(gè)頁(yè)面。默認(rèn)動(dòng)畫(huà)是從右至左蜕衡。
3. - (void)addChildViewController:(UIViewController *)childController
這個(gè)方法出現(xiàn)在iOS5以后壤短,通過(guò)它即使不使用NavigationController也能夠?qū)崿F(xiàn)view hierarchy。有以下優(yōu)點(diǎn):
- 頁(yè)面邏輯很清晰衷咽,相應(yīng)的View對(duì)應(yīng)相應(yīng)的ViewController鸽扁。
- 當(dāng)某個(gè)子View沒(méi)有顯示時(shí)蒜绽,將不會(huì)被Load镶骗,減少了內(nèi)存的使用。
- 當(dāng)內(nèi)存緊張時(shí)躲雅,沒(méi)有Load的View將被首先釋放鼎姊,優(yōu)化了程序的內(nèi)存釋放機(jī)制。