Сохраните все последующие состояния контроллера представления в UINavigationViewController - PullRequest
1 голос
/ 23 февраля 2020

У меня есть контейнер UIViewController, в котором находится один UINavigationController. Контроллер представления контейнера имеет кнопку, которая открывает новый контроллер представления путем вызова present(newViewController, animated: true, completion: nil).

newViewController имеет свой собственный UINavigationController и также содержит кнопку. Эта кнопка может present другой контроллер представления, который сам имеет UINavigationController и другую кнопку и так далее.

Я хочу, чтобы этот шаблон выполнялся как можно больше итераций и сохранял состояния всех из них. Это возможно? Чтобы закрыть текущий контроллер представления, я вызываю _ = navigationController?.popViewController(animated: true), но это также стирает все данные из предыдущего контроллера представления.

1 Ответ

2 голосов
/ 24 февраля 2020

Вы задали два вопроса

1) хотите, чтобы этот шаблон выполнялся как можно больше итераций и сохранял состояния всех из них.

Ответ. : вы не можете непрерывно представлять представление на уже представленном контроллере представления. для этого сначала нужно отклонить предыдущий представленный вид.

2) Чтобы закрыть текущий контроллер вида, я звоню

 _ = navigationController?.popViewController(animated: true) 

, но это также стирает все данные с предыдущего контроллера представления.

Ans. Если вы предоставляете какой-либо контроллер представления, то не используйте popviewcontroller, а используйте dismisViewController.

...