IOS開發中會遇到添加成功,發送成功……相似狀況,需求先將push前的頁面移除調。假如直接調用pop,立即去push。假如這兩個命令寫在同一個控制器中,則會發現push基本沒有被執行……由於pop曾經將該控制器移除,push基本沒無機會執行。也可以在上一個控制器經過代理/告訴/閉包等操作——沒有親測,覺得費事。
所以就選擇了上面的辦法,先移除路由棧中以後控制器,再新增新的控制器,最後賦值。
廢話不多說,直接上代碼: // 新建將要push的控制器
NewViewController *newVC = [[NewViewController alloc] init];
// 獲取以後路由的控制器數組
NSMutableArray *vcArray = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
// 打印以後路由的控制器數組
NSLog(@"==the vcArray is %@", vcArray);
// 獲取檔期控制器在路由的地位
int index = (int)[vcArray indexOfObject:self];
// 移除以後路由器
[vcArray removeObjectAtIndex:index];
// 添加新控制器
[vcArray addObject: newVC];
// 打印新增後的控制器數組
NSLog(@"==the vcArray is %@", vcArray);
// 重新設置以後導航控制器的路由數組
[self.navigationController setViewControllers:vcArray animated:YES];
// over 有其他好辦法歡送一同學習。
【iOS完成先無動畫pop再push,交換以後控制器】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!