É 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.