3 回答

TA貢獻1831條經驗 獲得超10個贊
使用此代碼并享受:
NSMutableArray *navigationArray = [[NSMutableArray alloc] initWithArray: self.navigationController.viewControllers];
// [navigationArray removeAllObjects]; // This is just for remove all view controller from navigation stack.
[navigationArray removeObjectAtIndex: 2]; // You can pass your index here
self.navigationController.viewControllers = navigationArray;
[navigationArray release];
希望這會幫助你。
編輯:Swift代碼
guard let navigationController = self.navigationController else { return }
var navigationArray = navigationController.viewControllers // To get all UIViewController stack as Array
navigationArray.remove(at: navigationArray.count - 2) // To remove previous UIViewController
self.navigationController?.viewControllers = navigationArray

TA貢獻1802條經驗 獲得超5個贊
您可以首先獲取數組中的所有視圖控制器,然后在檢查了相應的視圖控制器類之后,可以刪除所需的視圖控制器。
這是一小段代碼:
NSArray* tempVCA = [self.navigationController viewControllers];
for(UIViewController *tempVC in tempVCA)
{
if([tempVC isKindOfClass:[urViewControllerClass class]])
{
[tempVC removeFromParentViewController];
}
}
我認為這會使您的工作更輕松。

TA貢獻1815條經驗 獲得超6個贊
斯威夫特3&4/5
self.navigationController!.viewControllers.removeAll()
self.navigationController?.viewControllers.remove(at: "insert here a number")
斯威夫特2.1
移除所有:
self.navigationController!.viewControllers.removeAll()
從索引處刪除
self.navigationController?.viewControllers.removeAtIndex("insert here a number")
還有很多其他可能的動作,例如removeFirst,range等。
- 3 回答
- 0 關注
- 744 瀏覽
添加回答
舉報