Etapas na subclasse de UINavigationController

Gostaria de subclassificar o UINavigationController para obter mais liberdade em relação à aparência do controlador.

Tenho alguns gráficos para as diferentes partes, barras, botões, texto etc. Observando o arquivo de cabeçalho UINavigationController, recebo pouca ajuda, não sei por onde começar.

Eu nunca subclassifiquei / substituí um componente UIKit antes, parece que é um pouco como interpretar Sherlock Holmes.

Qual é a abordagem?

Como sei o que substituir para obter uma parte específica de gráficos "injetada" no local correto?

Preciso subclassificar UINavigationBar, UIBarButtonItem etc. etc para obter a aparência personalizada completa?

Como sei se algo está fora dos limites em relação à aprovação pela Apple?

Espero que alguém possa me apontar na direção certa, só consegui encontrar exemplos de alteração de pequenas partes do controlador, não uma personalização completa por subclassificação. Estou fazendo isso da maneira errada?

Obrigado:)