亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從導航堆棧中刪除視圖控制器

從導航堆棧中刪除視圖控制器

青春有我 2019-11-28 13:00:06
我有一個導航堆棧,說5個UIViewControllers。我要在第五個視圖控制器中單擊一個按鈕,以刪除堆棧中的第三個和第四個視圖控制器。是否有可能做到這一點?如果可以,怎么辦?
查看完整描述

3 回答

?
慕哥6287543

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


查看完整回答
反對 回復 2019-11-28
?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

您可以首先獲取數組中的所有視圖控制器,然后在檢查了相應的視圖控制器類之后,可以刪除所需的視圖控制器。


這是一小段代碼:


NSArray* tempVCA = [self.navigationController viewControllers];


for(UIViewController *tempVC in tempVCA)

{

    if([tempVC isKindOfClass:[urViewControllerClass class]])

    {

        [tempVC removeFromParentViewController];

    }

}

我認為這會使您的工作更輕松。


查看完整回答
反對 回復 2019-11-28
?
紅糖糍粑

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等。


查看完整回答
反對 回復 2019-11-28
  • 3 回答
  • 0 關注
  • 744 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號