Sobes.tech
Junior — Middle

É uma violação do princípio de Liskov se, em vez de uma apresentação na pilha de navegação, usar outro controlador de navegação dentro do atual?

sobes.tech IA

Resposta da IA

A utilização de outro UINavigationController dentro do stack de navegação atual é geralmente considerada uma violação do Princípio da Substituição de Liskov, pois o UINavigationController espera que os seus controladores de vista filhos sejam UIViewController normais, e não outros controladores de navegação. Isto pode levar a comportamentos imprevisíveis da interface, problemas de navegação e dificuldades na gestão do stack de controladores.

O Princípio de Liskov afirma que objetos de uma subclasse devem ser intercambiáveis com objetos da classe base sem alterar a correção do programa. Neste caso, se em vez de UIViewController inserir um UINavigationController, isso viola as expectativas e o contrato do UINavigationController, o que constitui uma violação do princípio.

É mais correto usar um único UINavigationController e gerir as transições através de push/pop de UIViewController normais, em vez de aninhar controladores de navegação uns dentro dos outros.