Вам будет сложно реализовать это во многом потому, что это плохой дизайн пользовательского интерфейса и API не поддерживает его.
Ваш пользователь будет ожидать, что кнопка «Назад» возвратит их «назад» к предыдущему виду, как и в любом другом приложении, которое они используют. Переход к любому другому представлению еще больше запутает их, потому что это не иерархия, а цикл. Иногда пользователи переходят на B -> C -> B, но в других случаях A -> C -> B -> C. (Как они возвращаются к А?)
Вместо кнопки «Назад» в C у вас должна быть кнопка справа, которая всегда переводит вас в B независимо от того, как вы попали в C. Одна и та же кнопка в одном и том же контексте всегда должна давать один и тот же результат. Пользователи не должны помнить, в каком невидимом режиме они находятся, чтобы предсказать, какое действие будет иметь кнопка.
Edit01: (Ответ на комментарии ниже)
(Это все с моей головы, так что возьмите его с крошкой соли.)
Вам нужно будет отказаться от использования контроллера навигации и вместо этого управлять представлениями самостоятельно. Вам нужно будет поменять представления через панель вкладок, заменив представление C на представления A и B в свойстве представления каждой вкладки.
Я думаю, вам придется начать с основного вида, который невидим, а затем добавить к нему панель вкладок. В главном контроллере представления создайте атрибуты / выходы для каждого представления. В каждом представлении есть атрибут / выход, связанный с главным контроллером представления. Затем используйте «кнопку назад» (которую я настоятельно рекомендую вам обозначить как «Чаты») метода вызова представления C в A и B, который затем вызывает метод в главном контроллере представления, который (1) удаляет представление C из вкладки A или вкладка B (2) переключает вкладку на вкладку B, а затем (3) загружает представление B на вкладку B.
Я не могу подчеркнуть, насколько неуклюже я считаю этот дизайн. Неважно, если другие приложения используют его. По моему опыту, крупные компании чаще допускают ошибки интерфейса, потому что их отделы маркетинга хотят, чтобы пользовательский интерфейс выглядел уникальным.
Для сравнения посмотрите, как приложение для телефона обрабатывает ту же ситуацию. Независимо от того, какую вкладку вы используете для совершения вызова, избранных, контактов, клавиатуры и т. Д., Вы все равно вернетесь к представлению этой вкладки после завершения вызова. Если вы хотите сделать вызов другим методом, просто перейдите на соответствующую вкладку.
Не обращайте внимания на плохой пример других. Зачем тратить столько времени и усилий, пытаясь воспроизвести чужую ошибку?