話(huà)不多說(shuō),直接上代碼
? ??BOOL isExistVC = NO;
? ? UINavigationController *navVC = self.navigationController;
? ? NSMutableArray *viewControllers = [[NSMutableArray alloc] init];
? ? for (UIViewController *vc in [navVC viewControllers]) {
? ? ? ? [viewControllers addObject:vc];
? ? ? ? if ([vc isKindOfClass:[OpenConfirmInfoVC class]]) {
? ? ? ? ? ? isExistVC = YES;
? ? ? ? ? ? break;
? ? ? ? }
? ? }
? ? if (isExistVC) {
? ? ? ? [self.navigationController popViewControllerAnimated:YES];
? ? }else{
? ? ? ? OpenConfirmInfoVC *OpenConVC = [[OpenConfirmInfoVC alloc] init];
/* 獲取當(dāng)前路由的控制器數(shù)組*/
? ? ? ? NSMutableArray *vcArray = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
/* 打印當(dāng)前路由的控制器數(shù)組*/
? ? ? ? NSLog(@"==the vcArray is %@", vcArray);
/* 獲取當(dāng)前控制器在路由的位置*/
? ? ? ? int index = (int)[vcArray indexOfObject:self];
/* 移除當(dāng)前路由器*/
? ? ? ? [vcArray removeObjectAtIndex:index];
/* 添加新控制器*/
? ? ? ? [vcArray addObject: OpenConVC];
/* 打印新增后的控制器數(shù)組*/
? ? ? ? NSLog(@"==the vcArray is %@", vcArray);
? ? ? ? /*?重新設(shè)置當(dāng)前導(dǎo)航控制器的路由數(shù)組 */
? ? ? ? [self.navigationController setViewControllers:vcArray animated:YES];
? ? }