У шаблона координатора есть известное слепое пятно относительно родной кнопки возврата. В основном у вас есть два способа исправить это:
- Переопределите свою собственную кнопку "назад", хотя вы теряете собственный жест смахивание назад для навигации назад.
- Реализовать
UINavigationControllerDelegate
, чтобы определить, когда всплыло представление, чтобы иметь возможность освободить соответствующего координатора.
Что касается первого решения, я не предлагаю это, пользователь заплатит цену за вашу архитектуру кода, это не звучит справедливо.
Что касается второго, вы можете реализовать его для самого Координатора, как предложено @mosbah, но я бы посоветовал вам пойти дальше и отделить Навигацию от Координатора, используя класс NavigationController
или Router
, чтобы изолировать Сама навигация и сохраняйте четкое разделение проблем.
Я написал кое-что об этом здесь , в котором подробно описаны основные шаги.