棧管理匯總

棧管理總結
1、基本的入/出棧

// 進
[self.navigationController pushViewController:resCtr animated:YES];
// 出
[self.navigationController popViewControllerAnimated:YES];

2、查找棧(查)

NSMutableArray *marr = [[NSMutableArray alloc]initWithArray:self.navigationController.viewControllers];
for (UIViewController *vc in marr) {
    if ([vc isKindOfClass:NSClassFromString(@"WantClass")]) {
        NSLog(@"找到了")
        break;
    }
}

3、進入/返回到指定棧

// 進
[self.navigationController popToViewController:Ctr animated:YES];
// 出
NSMutableArray *marr = [[NSMutableArray alloc]initWithArray:self.navigationController.viewControllers];
for (UIViewController *vc in marr) {
    if ([vc isKindOfClass:NSClassFromString(@"WantClass")]) {
        [self.navigationController popToViewController:vc animated:YES];
        break;
    }
}

4、在指定位置插入指定棧(增)

NSMutableArray *viewControllers = [self.navigationController.viewControllers mutableCopy];
for (int i = 0; i < viewControllers.count; i++){
    id vc = viewControllers[i];
    if ([vc isKindOfClass:[GCWKWebViewController class]]){
       UIViewController *insertVC = [[NSClassFromString(@"WantClass") alloc] init];
       [viewControllers insertObject:insertVC atIndex:i + 1];
       [self.navigationController setViewControllers:viewControllers animated:NO];
       // [self.navigationController popToViewController:insertVC animated:YES];
        break;;
     }
}

5、刪除指定棧(刪)

 NSMutableArray *viewControllers = [[NSMutableArray alloc]initWithArray:self.navigationController.viewControllers];
 for (UIViewController *vc in viewControllers) {
    if ([vc isKindOfClass:NSClassFromString(@"WantClass")]) {
       [viewControllers removeObject:vc];
       break;
      }
 }
 self.navigationController.viewControllers = viewControllers;

6、更改指定棧(改)

 NSMutableArray *viewControllers = [[NSMutableArray alloc]initWithArray:self.navigationController.viewControllers];
 for (UIViewController *vc in viewControllers) {
    if ([vc isKindOfClass:NSClassFromString(@"WantClass")]) {
       UIViewController *replaceVC = [[NSClassFromString(@"WantClass") alloc] init];
       [viewControllers replaceObjectAtIndex:i withObject:replaceVC];
       break;
      }
 }
 self.navigationController.viewControllers = viewControllers;
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容