본문 바로가기
iOS/iOS

navigation stack에서 특정 VC 삭제

by 패쓰킴 2022. 11. 2.
728x90
NSMutableArray *navigationArray = [[NSMutableArray alloc] initWithArray: self.navigationController.viewControllers];
for (int i = 0; i < [navigationArray count]; i++) {
  if ([[navigationArray objectAtIndex:i] isKindOfClass:[지우려는VC class]]) {
    [navigationArray removeObjectAtIndex: [navigationArray count] - ([navigationArray count] - i)];
  }
}
self.navigationController.viewControllers = navigationArray;

 

정확한 스택 index를 지정하여 pop

NSArray * navi = self.navigationController.viewControllers;
[self.navigationController popToViewController:[navi objectAtIndex:원하는 위치의 index] animated:YES];
func goTo<T: UIViewController>(vc: T.Type) {
  let viewControllerStack = navController.viewControllers
  for viewController in viewControllerStack {
    if let page = viewController as? T {
      navController.popToViewController(page, animated: true)
      return
    }
  }
}
728x90

'iOS > iOS' 카테고리의 다른 글

DateFormatter  (0) 2022.11.03
UIPickerView  (0) 2022.11.02
UIScrollView  (0) 2022.11.01
UISegmentedControl  (0) 2022.10.19
UITabBar  (0) 2022.10.19

댓글