Как изменить поток раскадровки - PullRequest
0 голосов
/ 26 июня 2018

Мне нужно изменить поток ViewControllers, отображаемых на основе раскадровки в унаследованном приложении.

Допустим, раскадровка говорит, чтобы отображать экраны следующим образом:

screen A -> screen B -> screen C -> screen D

Теперь модификация состоит в том, что в зависимости от конкретного условия экран C не должен отображаться. Допустим, если условие истинно, отображается экран C, в противном случае это не так, и экран D отображается непосредственно.

Расход должен быть:

                        /-------false--\ 
                       /                \
                      /   true           \
screen A -> screen B ---------> screen C ----> screen D

Я создаю переход между экраном B и экраном D. Если условие истинно, я ничего не делаю (отображается экран C, а затем экран D), если условие ложно, я вызываю переход в ViewController для экрана B:

  performSegue(withIdentifier: "DirectlyDisplayScreenD", sender: self)

Это почти работает ... экран C отображается полсекунды, а затем появляется экран D.

Я новичок в iOS, правильно ли я сделал хотя бы в принципе?

Есть ли очевидная причина, по которой экран C отображается в скором времени? Это из-за раскадровки? или вызова segue недостаточно? или это означает, что ViewController для экрана C создается где-то в коде?

Есть ли способ удалить ViewController из раскадровки? Я нашел метод instantiateViewController , но я не нашел метод "removeViewController"

1 Ответ

0 голосов
/ 31 августа 2018

Я решил проблему самостоятельно. Я удалил наследие и снова собрал его, позаботившись о том, чтобы дать ему имя. После этого приложение следует желаемым потокам.

Спасибо за все предложения !!

...