Как быстро настроить контроллер просмотров на один из предыдущих контроллеров представления?

Я пытаюсь выставить контроллер своего вида на один из предыдущих контроллеров представлений в стеке просмотра. Предположим, что в моем стеке просмотра есть первыеVC, secondVC, третьи VC и четвертые контроллеры просмотра. Текущий контроллер представления – четвертый, и в четвертом VC есть табличное представление. Если пользователь удалит все строки в tableview, я должен направить пользователя на secondVC . У меня возникла идея, что я создам еще один диспетчер навигации и представляю его с помощью команды presentViewController . Однако это не решение моей проблемы. Потому что я вижу, что для этого случая появляется проблема с навигацией. Как я могу найти лучшее решение для этого случая?

Спасибо за ваши ответы, С наилучшими пожеланиями

Вместо выполнения общего вызова popToViewController:animated: используйте popToViewController:animated: Вы можете определить, удалил ли пользователь все строки в этом случае, сделайте что-то вроде этого (иначе просто поместите один контроллер вида):

 let viewControllers: [UIViewController] = self.navigationController!.viewControllers as [UIViewController]; self.navigationController!.popToViewController(viewControllers[viewControllers.count - 2], animated: true); 

Если вы хотите перейти к определенному элементу управления просмотром и не знаете, что нужно для возврата, вы можете использовать это:

  let viewControllers: [UIViewController] = self.navigationController!.viewControllers as! [UIViewController]; for aViewController in viewControllers { if(aViewController is ViewControllerYouWantToGoTo){ self.navigationController!.popToViewController(aViewController, animated: true); } } 

После долгих усилий я создал быстрое расширение назад к определенному контроллеру представления в Swift 3.0.

 extension UINavigationController { func backToViewController(viewController: Swift.AnyClass) { for element in viewControllers as Array { if element.isKind(of: viewController) { self.popToViewController(element, animated: true) break } } } } 

Вызов метода:

  self.navigationController?.backToViewController(viewController: BarCodeScannerVC.self) 
  • Новая Firebase: изменение динамического URL базы данных
  • Сделать класс итерабельным с помощью for for for Loop?
  • Получение SSDP-ответа с использованием CocoaAsyncSocket в Swift
  • UITableView Drag & Drop Outside Table = Crash
  • NSStreamDelegate не получает NSStreamEvent.HasSpaceAvailable:
  • Цвет курсора UITextView не меняет iOS 7
  • Как добавить изображение на кнопку удаления UITableView?
  • Приложение iOS падает при нажатии кнопки входа в Google
  • Как быстро конвертировать PFFile в UIImage?
  • Расширение NSURL для принятия StringLiteralConvertible
  • В чем разница, изменяющая базу UIObject и CALayer?
  • Давайте будем гением компьютера.