本文參考:http://blog.csdn.net/weisubao/article/details/39640303 ,在此感謝
//可以手動(dòng)設(shè)置pop出棧他挎,相當(dāng)于刪除這個(gè)頁(yè)面诸迟,跳轉(zhuǎn)到其他頁(yè)面
//popViewControllerAnimated就是彈出唬渗,因?yàn)閺棾鲋荒軓棾鲎钌厦娴臈m數(shù)哪莻€(gè),所以可以不用指定參數(shù)
//popToRootViewControllerAnimated-就是直接跳轉(zhuǎn)到根視圖控制圖,如果只有兩層,那么和popViewControllerAnimated并無區(qū)別鸟雏,如果有很多層,那么其實(shí)就是相當(dāng)于不僅把自己pop出去览祖,還把所有除了根視圖控制圖之外的所有視圖控制器都pop出去了孝鹊,所以就相當(dāng)于跳轉(zhuǎn)到根視圖控制器了
//popToViewController-就是跳轉(zhuǎn)到指定的視圖控制器xxx,這個(gè)xxx一定要在這個(gè)棧里面展蒂,即一定是在我們當(dāng)前這個(gè)視圖控制器的下面的又活,所以跳轉(zhuǎn)也就是把自己和在xxx上面的所有視圖控制器都pop出去苔咪,然后相當(dāng)于直接跳轉(zhuǎn)到xxx
//此處重點(diǎn)是這個(gè)xxx怎么獲取,按照一般理解是用xxx再初始化一個(gè)視圖控制器對(duì)象yyy柳骄,然后把這個(gè)對(duì)象yyy作為popToViewController參數(shù)
//但事實(shí)是团赏,yyy是新初始化的,不在棧中耐薯,當(dāng)然和在棧中的xxx初始化的那個(gè)對(duì)象也不是同一個(gè)對(duì)象舔清,所以會(huì)報(bào)錯(cuò)(因?yàn)樵跅V姓也坏桨。?/p>
//所以曲初,self.navigationController.viewControllers出場(chǎng)体谒,viewControllers是個(gè)數(shù)組,儲(chǔ)存的時(shí)導(dǎo)航控制器棧中所有的視圖控制器臼婆,最先push進(jìn)去的時(shí)0抒痒,以此類推,最上面的肯定是數(shù)組的最后一個(gè)
//所以颁褂,那個(gè)xxx之前初始化的對(duì)象故响,可以用[self.navigationController.viewControllers objectAtIndex:0]表示,此處0就是根視圖控制器 ? [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:YES];
//所以痢虹,只要拿到navigationController被去,貌似能做很多事情