插入ViewController在self.navigationController.viewcontroller的堆栈之间

我的导航控制器中有三个viewcontollers。 现在我想做的只是在self.navigationController.viewControllers数组之间插入一个视图控制器。

当我检查属性viewControllers不是readonly属性所以我认为我们也可以设置它。 这就是为什么我使用下面的代码在堆栈之间插入我的ViewController。 但不幸的是,它不会修改self.navigationController.viewControllers的堆栈

那么如何插入和修改堆栈呢? 还要确保我不想pushViewcontroller。

CXSTransactionSelectionViewController *trxSelectionVc = [self.storyboard instantiateViewControllerWithIdentifier:@"CXSTransactionSelectionViewController"]; NSMutableArray *viewControllers = [self.navigationController.viewControllers mutableCopy]; [viewControllers insertObject:trxSelectionVc atIndex:viewControllers.count-2 ]; [self.navigationController setViewControllers:viewControllers animated:YES]; NSLog(@"%@",self.navigationController.viewControllers); 

尝试做这样的事情:

 NSArray * oldViewControllers = [self.navigationController viewControllers]; NSArray * newViewControllers = [NSArray arrayWithObjects:[oldViewControllers objectAtIndex:0], newVC, [oldViewControllers objectAtIndex:1],nil]; [self.navigationController setViewControllers:newViewControllers]; 

用这个我的问题解决了

 CXSTransactionSelectionViewController *trxSelectionVc = [self.storyboard instantiateViewControllerWithIdentifier:@"CXSTransactionSelectionViewController"]; [self.navigationController.viewControllers insertObject:trxSelectionVc atIndex:1 ]; NSLog(@"%@",self.navigationController.viewControllers);