Loop do controlador de navegação

Estou criando um aplicativo que possui um recurso de carrinho de compras. O carrinho de compras VC pode ser acessado de vários VCs através de um botão na barra de navegação. Até agora, só tenho um controlador de navegação e, como mostra a imagem, cada VC me leva ao próximo, nada sofisticado. O terceiro VC (seta azul apontando para) é um VC que mostra os detalhes do produto / item e me permite adicioná-lo ao carrinho.

O problema vem com o carrinho de compras VC. Para editar o item, gostaria de reutilizar os mesmos detalhes do produto / item (seta azul apontando para) VC que usei anteriormente.

No momento, eu realmente não tenho um problema, mas notei que, depois de criar o segue azul, a Barra de Navegação do 3º VC desapareceu no Storyboard, mas eu ainda era capaz de vê-lo ao executar o aplicativo.

NOTA:

Todos os seguidores da imagem são "Mostrar"O carrinho de compras VC não tem um botão para se mostrar como os outros três. Então, tecnicamente, evitei o loop infinito do carrinho de compras VC - detalhes do produto / item VC mostrando um ao outro.

Minhas perguntas são:

É errado projetar o aplicativo dessa maneira com um VC indo para outro VC e que outro VC possa voltar ao primeiro VC? Vou enfrentar problemas no futuro, talvez algum tipo de vazamento de memória?Existe uma maneira melhor de conseguir o que estou tentando alcançar?

Se alguém precisar de mais explicações, entre em contato e editaremos minha pergunta.

EDIT: Para esclarecer, o azul segue é basicamente um botão em um UITableView no carrinho VC. Se você tocar nesse botão, ele deverá abrir o VC dos detalhes do produto / item e permitir que você edite a cor do item etc. Nos detalhes do item VC, em vez de adicionar o item como um novo item ao carrinho, eu mostraria uma edição botão que enviaria a solicitação de edição para a API e dispensaria o VC de volta ao carrinho de compras, ou eu poderia usar o botão Voltar no controlador de navegação para voltar ao carrinho de compras.

EDIT2: @beshio

Obrigado pela resposta. No entanto, VC1 é realmente o meu VC raiz, onde todo o aplicativo é iniciado. Não entendi por que os VCs foram removidos da pilha do Controlador de Navegação. Eu gostaria que o botão Voltar funcionasse como pretendido.

Até agora, consegui o que queria, mas tenho medo de que dois VCs se seguam causem um problema. Eu já desabilitei o botão Carrinho no VC3, caso o VC3 fosse apresentado no Carrinho, para que os loops fossem impedidos. Só estou preocupado com qualquer vazamento de memória na estrada.

questionAnswers(2)

yourAnswerToTheQuestion