pop到?jīng)]有實(shí)例化的控制器

在平常的開發(fā)中可能會(huì)遇到一些不太平常的需求,比方說我的就是從首頁A控制器 push到C控制器,然后需要從C返回B,然后B再返回的話可以返回首頁A

乍一看這需求好像不太符合常理,但是有些場景下還是比較合理的,就比方我這個(gè)

直接上代碼吧

// 這是 UINavigationController 中的屬性
@property(nonatomic,copy) NSArray<__kindof UIViewController *> *viewControllers;  // The current view controller stack.
// 首先導(dǎo)航控制器其實(shí)是一個(gè)壓棧和出棧的過程,在 A push 到 C 后 viewControllers 數(shù)組中只有 A 和 C,想要 pop 到 B 的話 viewControllers 中必須要有 B 才行;

// 既然這樣我們直接把 B 添加到數(shù)組中試一試吧
// viewControllers 是一個(gè)不可變數(shù)組
NSMutableArray *temp = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];

viewControllerB *VCB = [[viewControllerB alloc] init];

[temp insertObject: VCB atIndex: temp - 1];

// 此時(shí) temp 數(shù)組中存在 A -->B -->C 三個(gè)控制器,在 C 中直接 pop 即可

[self.navigationController setViewControllers: temp animated:YES];

[self.navigationController popViewControllerAnimated:YES];
最后編輯于
?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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