Je recommande fortement la lecture de Apple UIViewController Guide de Programmation.
La principale raison pratique d'utiliser un UIViewController, en particulier dans une application simple qui n'a pas l'usage de la navigation, est à la rotation de la poignée. UIWindow et UIViewController travailler ensemble pour déterminer si oui ou non le haut de la vue peut la rotation de la poignée, et les orientations qu'il prend en charge.
Si vous venez d'utiliser une vue, sans avoir ce point de vue, géré par une sous-classe UIViewController, puis la fenêtre de l'application ne serait pas envisager de ce point de vue un candidat pour la rotation. UIViewController est l'ingrédient magique qui fait de l'auto-rotation possible.
Rappelez-vous que tous les contrôles de l'INTERFACE utilisateur et même la fenêtre principale elle-même, tous les "points de vue", c'est à dire qu'ils sont des sous-classes de UIView. Donc, vous êtes à l'aide de vues de tous les temps. L'idée derrière un point de vue est surtout qu'il prend la responsabilité de l'élaboration d'une partie de l'écran, alors, évidemment, l'écran peut contenir de nombreux points de vue différents en même temps, et les vues peuvent contenir d'autres points de vue (de la même manière la fenêtre principale, d'être vue elle-même).
La raison pour Apple recommande d'avoir un UIViewController gérer toute une page de l'espace est à cause de la rotation du système. Un seul UIVC -- celui attaché à la plus récente, la plus haute ajouté sous-vue de la fenêtre, ou d'un modal pop-up, ne sera jamais demandé de vérifier si les changements d'orientation sont possibles. Et que le point de vue associé avec un UIVC sera effectivement mis en rotation. C'est un point important à retenir... Si vous avez deux UIVC objets à gérer le contenu de l'écran, puis seulement la plus récente pourrait changer d'orientation, qui risque de laisser l'affichage dans un désordre.
Alors, en un mot, si vous disposez d'une simple fenêtre d'application basée et n'ont pas besoin de s'inquiéter à propos de la rotation, il est bien d'utiliser vos contrôles réguliers placé directement sur la fenêtre principale et d'ignorer UIViewController tout à fait. Vous aurez toujours besoin de fournir un générique de "contrôleur" pour gérer les modifications de mise en page et le comportement, et la médiation des modifications de données entre les contrôles et votre modèle(s), mais que le contrôleur n'a pas besoin d'hériter de UIViewController, il peut être une sous-classe de NSObject.