2010-02-01 13 views
2

Je suis la programmation pour l'iPhone et je me demande quand utiliser la méthode addSubview d'une vue et quand présenter pour utiliser le contrôleur de vue modale (presentModalViewController). Ce qui complique encore plus cela est si vous utilisez un contrôleur de navigation (je ne suis pas) et vous pouvez utiliser la méthode pushViewController?Quand dois-je utiliser la méthode addSubview d'un contrôleur de vue?

Quand utiliseriez-vous chacun et pourquoi?

Merci.

Répondre

5

-presentModalViewController et -pushViewController sont deux façons de faire à peu près la même chose: afficher une nouvelle vue. Ce que vous utilisez dépend de l'expérience utilisateur que vous recherchez. Ils signifient des choses différentes pour l'utilisateur, mais sont très similaires dans la mise en œuvre.

-addSubview est complètement différent. Il ajoute des composants à la vue actuelle. Vous ne devriez jamais l'utiliser pour afficher une interface utilisateur indépendante. -addSubview est le plus souvent utilisé lors de la création par programme de l'interface utilisateur dans -loadView, mais il a beaucoup d'autres utilisations.

+0

Quand utiliseriez-vous presentModalViewController et pushViewController? Je ne suis pas sûr quand je devrais utiliser quoi. –

+0

Modal: http://developer.apple.com/iPhone/library/featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html NavController: http://developer.apple.com/iPhone/library/featuredarticles/ViewControllerPGforiPhoneOS/NavigationControllers/NavigationControllers. html –

3

Voilà une façon de voir les choses:

Une séquence de vue-contrôleurs dans le contrôleur de navigatoin unique représentent un flux unique dans la tête de l'utilisateur. Si, à un moment donné, vous devez interrompre le flux de travail en cours et créer un flux de travail divergent, vous créez une boîte de dialogue modale. Si le nouveau workflow ne comporte qu'une seule étape, vous présentez simplement le contrôleur correspondant, mais si vous avez plusieurs étapes, créez un nouveau contrôleur de navigation pour enchaîner les étapes.

Les visuels sont différents - avec l'attention de l'utilisateur du contrôleur de navigation se déplace de gauche à droite, tout en dialogue modal de haut en bas. Imaginez que vous êtes en train de feuilleter un livre (de gauche à droite) et que, à un moment donné, vous l'enlevez, puis tirez un autre livre sous la table et placez-le devant vous (de haut en bas), puis démarrez en passant par ce autre livre (de gauche à droite). Ensuite, vous fermez tout le deuxième livre et revenez au premier livre où vous vous êtes arrêté.

La méthode addSubview est sur un plan d'abstraction différent - subviews sont utilisés pour créer les deux expériences décrites plus haut. Vous pouvez utiliser des sous-vues pour créer une expérience différente qui serait au même niveau d'abstraction. Deux autres exemples de constructions au même niveau sont UIAlertView et UIActionSheet.