English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Introdução
Talvez você encontre problemas de rotação de tela com frequência no desenvolvimento de aplicativos iOS, por exemplo, desejar que determinadas páginas rolem em diferentes direções de tela, mas devido aos métodos fornecidos pelo sistema serem métodos globais do controlador de navegação, não é possível alcançar essa necessidade de maneira aleatória. A solução geral é herdar UINavrgationViewController, reescrever os métodos dessa classe, o que, embora também resolva o problema, gera pelo menos dois arquivos desnecessários e muita código, o que claramente não é o que queremos. Abaixo, usaremos um método mais básico para resolver esse problema.
Princípio básico
Mude dinamicamente o método global UINavrgationViewController, substituindo os métodos supportedInterfaceOrientations, shouldAutorotate e os métodos do objeto controlador de navegação que escrevemos.
Preparativos
Configuração de suporte a direções
Implementação do código
Escreva o método abaixo no método viewDidLoad da classe pai de todos os controladores de vista, para configurar a direção de rotação da tela.
//Obter o método de suporte de rotação do controlador de vista atual Method selfMtihod = class_getInstanceMethod([self class], @selector(shouldAutorotate)); //Obter o método de suporte de rotação do controlador de navegação atual Method navr = class_getInstanceMethod([self.navigationController class], @selector(shouldAutorotate)); //Trocar métodos method_exchangeImplementations(selfMethod, navr); //Os seguintes métodos são semelhantes Método selfOrientation = class_getInstanceMethod([self class], @selector(supportedInterfaceOrientations)); Método navrOrientation = class_getInstanceMethod([self.navigationController class], @selector(supportedInterfaceOrientations)); method_exchangeImplementations(selfOrientation, navrOrientation);
Método de uso
Reescreva supportedInterfaceOrientations, shouldAutorotate no pai acima para representar os atributos relacionados à rotação da tela por padrão.
Em cada subclasse subsequente do controlador que tenta controlar, você pode reescrever supportedInterfaceOrientations, shouldAutorotate para completar o requisito de orientação do visual controller.
Aqui está uma explicação detalhada do método do editor para resolver o problema de rotação de tela do Runtime, esperamos que isso ajude a todos. Se você tiver alguma dúvida, por favor, deixe um comentário, o editor responderá a tempo. Agradecemos também o apoio ao site de tutorial de clamor!
Declaração: O conteúdo deste artigo é extraído da internet, pertence ao respectivo proprietário, o conteúdo é contribuído e carregado voluntariamente pelos usuários da internet, este site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidade legal relevante. Se você encontrar conteúdo suspeito de violação de direitos autorais, por favor, envie um e-mail para: notice#w.3Aviso: O conteúdo deste artigo foi extraído da internet, pertence ao respectivo proprietário, o conteúdo foi contribuído e carregado voluntariamente pelos usuários da internet, este site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidade legal relevante. Se você encontrar conteúdo suspeito de violação de direitos autorais, por favor, envie um e-mail para: notice#w, fornecendo provas relevantes. Uma vez confirmada, o conteúdo suspeito será imediatamente removido deste site.