2010-09-02 5 views
10

J'essaie d'apprendre la programmation pour l'iPhone et je continue à voir ces fichiers et je ne sais pas quand chaque fichier et le contenu de ces fichiers sont mentionnés dans l'exécution d'un programme construit pour l'iPhone. J'essaie de suivre des tutoriels et des conseils disponibles en ligne, mais nulle part il n'y a une comparaison point par point ou quelque chose comme ça. Ce serait génial si l'un d'entre vous pouvait énumérer quelques différences fondamentales comme quand chaque fichier est référé et ce qui devrait idéalement aller dans chaque fichier et ainsi de suite. Merci pour votre temps déjà.Quelle est la différence entre les classes RootViewController, AppDelegate et View Controller que je peux créer?

Répondre

47

En général, les délégués peuvent être considérés comme des gestionnaires d'événements. En conséquence, AppDelegate est le gestionnaire d'événement principal pour l'ensemble de votre application. Il est dit quand l'application a démarré, quand elle sortira, quand une notification Push entrera, quand l'application sera passée en arrière-plan, etc. Un de ces événements - applicationDidFinishLaunching - est généralement responsable de la création de la fenêtre de l'application et de l'ajout de vues à cette fenêtre.

Dans la plupart des applications, la vue qui est ajoutée à la fenêtre est en réalité contrôlée par un UIViewController. Chaque UIViewController est responsable de la gestion de l'apparence d'une vue principale plus toutes ses sous-vues. Par exemple, un UITableViewController est responsable de la gestion d'un UITableView (vue principale) et de tous les UITableViewCells (sous-vue) qui sont insérés dans ce UITableView. Le UIViewController agit généralement comme délégué (gestionnaire d'événements) aux vues dont il est responsable. Lorsqu'un utilisateur appuie sur une cellule de vue de table, une méthode dans UITableViewController est appelée. Lorsque l'utilisateur balaie pour supprimer une méthode distincte est appelée.

Un UIViewController générique offre les mêmes fonctionnalités de base, mais pour les vues personnalisées. Par exemple, le UIViewController peut être responsable de l'affichage de quelques vues de texte et d'un bouton. Le UIViewController créerait sa vue principale, les vues de texte et la vue de bouton. Les vues de texte et la vue de bouton seraient ajoutées à la vue principale du contrôleur de vue en tant que sous-vues. Le UIViewController s'enregistre comme délégué pour les événements de la vue texte (par exemple, apprentissage lorsque l'utilisateur a fini d'éditer le texte dans la vue texte). Il enregistrerait également une méthode pour gérer une pression de bouton provenant du bouton qu'il possédait. Lorsque l'un de ces événements enregistrés se produit, les méthodes sur le UIViewController sont appelées vous permettant de prendre toutes les mesures nécessaires.

Le rootViewController est un type spécifique de contrôleur de vue utilisé avec les contrôleurs de navigation. Si vous voulez une application qui a la hiérarchie de vue de navigation iOS typique, votre AppDelegate ajoute généralement un UINavigationController à la fenêtre de l'application. Ce UINavigationController est inutile sans avoir de contenu à afficher. C'est là que le rootViewController entre en jeu. Vous êtes responsable de fournir un contrôleur de vue (tel que celui décrit ci-dessus) pour agir comme la première vue stockée dans la pile de vues de UINavigationController. Cette vue s'affichera lorsque l'application démarrera et à chaque fois que l'utilisateur relèvera les ViewControllers suivants de la pile de UINavigationController. Longue durée Je réalise - mais j'espère que ça aide.

+0

Aide totalement. Merci. J'ai une autre question, et si ce n'est pas trop demander, ce serait génial si vous pouviez y jeter un coup d'œil: http://stackoverflow.com/questions/3651265/sqlite3-step-keeps-returning-sqlite- utiliser-sur-ce-query-any-pointers. Merci quand même pour cette réponse. – kumar

+1

Explication géniale pour les relations entre AppDelegate, UIWindow, UIViewController, vue principale, sous-vues, etc Toujours valide fin 2012. Merci beaucoup – Philip007

+0

Merci @Peter, certainement l'une des explications les plus utiles et concises du rôle de chaque type d'objets. Merci. –

Questions connexes