Удалить все ViewControllers кроме текущего из контроллера навигации

Это должно сделать это:

^(?!.*details\.cfm).*selector=size.*$

^.*selector=size.*$ должно быть достаточно ясно. Первый бит, (?!.*details.cfm) является негативным взглядом вперед: перед сопоставлением строки, которую он проверяет, строка не содержит «details.cfm» (с любым количеством символов перед ней).

2
задан rmaddy 18 January 2019 в 16:39
поделиться

3 ответа

В viewDidLoad вашего контроллера вида установите для свойства viewControllers вашего контроллера навигации значение, которое вы хотите, например:

override func viewDidLoad() {
    super.viewDidLoad()

    self.navigationController?.viewControllers = [self]
}
0
ответ дан Mo Abdul-Hameed 18 January 2019 в 16:39
поделиться

Вы также можете удалить его, получив количество контроллеров представления, которое у вас есть, и удалив их все, кроме последнего

if let viewControllerCount = self.navigationController?.viewControllers.count {
    self.navigationController?.viewControllers.removeFirst(viewControllerCount - 1)
}

Если у вас есть 5 контроллеров представления, вы должны вызвать removeFirst (5-1) так он может удалить первые 4 контроллера вида.

0
ответ дан codeherk 18 January 2019 в 16:39
поделиться

Вместо того, чтобы бросать и все, что вы можете просто использовать:

self.navigationController?.viewControllers = [self]
0
ответ дан Jarvis The Avenger 18 January 2019 в 16:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: