J'ai déjà dû démêler du code dans des contrôleurs de vue de grande taille et cela m'a vraiment empêché de naviguer dans le contenu au début. Une chose importante que j'ai réalisée est que la taille du View Controller seul n'était pas une raison suffisante pour séparer les choses. Il y a de la complexité à avoir 1 gros fichier et aussi de la complexité à avoir un tas de petits fichiers. Voici quelques raisons valables de refactoriser pour diviser un contrôleur de vue en parties plus petites:
MVC
Le contrôleur de vue ne devrait pas faire beaucoup plus que d'être la colle de connexion entre la vue et le modèle. Si vous avez beaucoup de code de connexion réseau, de code de manipulation d'image, etc., alors envisagez de les répartir en classes d'assistance.
Contrôles multiples avec View Controller comme source de données
Si vous disposez d'un tas de contrôles à l'écran qui ont votre contrôleur de vue comme source de données, envisagez de les diviser en objets de source de données distincts et de les utiliser comme source de données. Ou vous pouvez également les diviser en contrôleurs de vue distincts (comme si votre contrôleur de vue a une vue de table en plus d'un autre contrôleur, vous pouvez le diviser en sa propre classe de contrôleur de vue de table).
Code en double
Si vous avez exactement le même code dans différents contrôleurs de vue, placez-le dans 1 emplacement partagé. Cela rendra votre code réutilisable et aidera à gérer la complexité.
Voici quelques conseils supplémentaires pour minimiser la complexité de View Controller:
Storyboard au lieu de programmatique
La création d'éléments de vue représente beaucoup de code et le code de géométrie de cadre représente également beaucoup de travail. Si ce n'est déjà fait, envisagez d'utiliser des contraintes de mise en page automatique et de placer autant d'éléments View que possible dans le storyboard.
Code / commentaires inutiles
Assurez-vous également de supprimer le code / les commentaires inutiles. Souvent, un nouveau fichier View Controller est fourni avec des méthodes que vous n'utilisez pas. Si vous n'utilisez pas une méthode comme didReceiveMemoryWarning
celle-ci, vous pouvez la retirer en toute sécurité. De plus, comme le fichier View Controller est si volumineux, il est parfois effrayant de supprimer l'ancien code ou les commentaires. Ne remettez pas ça! Cela ne fait qu'ajouter à la complexité.
Notifications
Pour répondre à votre question sur les notifications: les notifications ne sont pas un Golden Hammer à utiliser avec tout. Je trouve que les notifications sont utiles lorsque plusieurs contrôleurs de vue doivent être mis à jour en même temps en raison d'une action particulière. Soyez prudent avec les notifications, en les surutilisant peut vous causer beaucoup de douleur en essayant de les retrouver.