English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Préambule
Il est possible que vous ayez souvent rencontré des problèmes de rotation d'écran dans le développement d'applications iOS, par exemple, espérer que les pages spécifiées effectuent différentes rotations d'écran, mais en raison des méthodes fournies par le système qui sont des méthodes globales de l'assistant de navigation, il est impossible d'atteindre cette demande de manière arbitraire. La solution générale consiste à hériter de UINavrgationViewController et à réécrire les méthodes de cette classe, bien que cela puisse résoudre le problème, mais au moins deux fichiers supplémentaires et beaucoup de code sont générés pendant le processus de réécriture, ce qui n'est certainement pas ce que nous voulons. Voici une méthode plus basique pour résoudre ce problème.
Principe de base
Changer dynamiquement la méthode globale de UINavrgationViewController, remplacez simplement les méthodes ourselves supportedInterfaceOrientations, shouldAutorotate et les méthodes de l'assistant de navigation.
Préparation des travaux
Configurer les directions de support du projet
Mise en œuvre du code
Écrivez le méthode ci-dessous dans la méthode viewDidLoad du parent de tous les assistants de vue, vous pouvez configurer la direction de rotation de l'écran.
//Obtenir la méthode de rotation de l'assistant de vue actuelle Method selfMtihod = class_getInstanceMethod([self class], @selector(shouldAutorotate)); //Obtenir la méthode de rotation de l'assistant de navigation actuelle Method navr = class_getInstanceMethod([self.navigationController class], @selector(shouldAutorotate)); //Exchange methods method_exchangeImplementations(selfMethod, navr); //The same as above Method selfOrientation = class_getInstanceMethod([self class], @selector(supportedInterfaceOrientations)); Method navrOrientation = class_getInstanceMethod([self.navigationController class], @selector(supportedInterfaceOrientations)); method_exchangeImplementations(selfOrientation, navrOrientation);
Usage method
Overwrite supportedInterfaceOrientations, shouldAutorotate in the above parent class to indicate the default screen rotation-related properties.
In each subclass of the controller to be controlled in the future, you can overwrite the supportedInterfaceOrientations, shouldAutorotate methods to complete the requirements for specifying the view controller orientation.
The above-mentioned is the detailed explanation of the method of solving the screen rotation problem of Runtime introduced by the editor to everyone. I hope it will be helpful to everyone. If you have any questions, please leave me a message, and the editor will reply to you in time. At the same time, I would also like to express my sincere gratitude to everyone for their support of the Yell Tutorial website!
Declaration: The content of this article is from the Internet, and the copyright belongs to the original author. The content is contributed and uploaded by Internet users spontaneously. This website does not own the copyright, has not been manually edited, and does not assume any relevant legal liability. If you find any content suspected of copyright infringement, please send an email to: notice#oldtoolbag.com (when sending an email, please replace # with @ to report abuse, and provide relevant evidence. Once verified, this site will immediately delete the content suspected of infringement.)