これは悪いUIデザインであり、APIがサポートしていないため、これを実装するのは難しいと思います。
ユーザーは、使用する他のすべてのアプリと同じように、戻るボタンで前のビューに「戻る」ことを期待します。他のビューに移動すると、階層ではなくループであるため、さらに混乱します。ユーザーはB->C->Bに移動することもありますが、A-> C->B->Cに移動することもあります。(どうやってAに戻るのですか?)
Cの戻るボタンの代わりに、Cに到達した方法に関係なく、常にBに移動するボタンを右側に配置する必要があります。同じコンテキストの同じボタンでも常に同じ結果が得られるはずです。ユーザーは、ボタンのアクションを予測するために、どの非表示モードにあるかを覚えておく必要はありません。
Edit01 :(以下のコメントへの回答)
(これはすべて私の頭のてっぺんから外れているので、一粒の塩でそれを取ります。)ナビゲーションコントローラーの使用をやめ、代わりに自分でビューを管理する必要があります。各タブのビュープロパティのAビューとBビューをCビューに置き換えて、タブバーを介してビューを入れ替える必要があります。
見えないマスタービューから始めて、それにタブバーを追加する必要があると思います。マスタービューコントローラーで、各ビューの属性/アウトレットを作成します。各ビューで、属性/アウトレットをマスタービューコントローラーにリンクします。次に、AとBのCビュー呼び出しメソッドの「戻るボタン」(「チャット」というラベルを付けることを強くお勧めします)を使用して、マスタービューコントローラーのメソッドを呼び出し、(1)タブAまたはタブAからCビューを削除します。タブB(2)タブをBタブに切り替えてから、(3)ビューBをタブBにロードします。
このデザインがいかに不格好であるかを強調することはできません。他のアプリがそれを使用するかどうかは関係ありません。私の経験では、マーケティング部門がUIをユニークに見せたいので、大手企業はインターフェースの間違いを犯す可能性が高くなります。
比較して、電話アプリが同じ状況をどのように処理するかを見てください。電話をかけるために使用するタブ、お気に入り、連絡先、キーパッドなどに関係なく、電話をかけるとそのタブのビューに戻ります。別のメソッドで呼び出しを行う場合は、適切なタブを押すだけです。
他人の悪い例を無視してください。なぜ他人の過ちを再現しようと多くの時間と労力を費やすのですか?