2010-03-05 5 views
0

Dans mon application iPhone, j'utilise un contrôleur de barre d'onglets avec cinq éléments pour la navigation principale. Cependant, j'ai également besoin de moyens supplémentaires pour changer la vue actuelle. Par exemple, si l'utilisateur est sur l'onglet Calendrier et clique sur une date, il doit afficher une vue différente.Navigation dans les vues iPhone/ViewControllers

Afin de mettre en œuvre ce (et d'autres) types de navigation personnalisée, que dois-je faire? Je pensais que ce dont j'avais besoin était d'ajouter le contrôleur de navigation à ma plume de fenêtre principale, mais il semble que cela ajoute une barre de navigation à l'interface utilisateur, donc je ne pense pas que ce soit ça. Fondamentalement, quelle est la meilleure façon de changer la vue quand un utilisateur clique sur quelque chose comme un bouton ou un élément sur une grille? Je sais comment raccorder ces éléments d'interface à des événements, mais je ne comprends pas très bien comment la logique de changement de vue va dans la plume de la fenêtre principale.

Merci!

EDIT: Pour clarifier, je crois que ce que j'essaie de faire est de naviguer vers une vue enfant pour cet onglet (ne pas changer l'onglet actif). Comme l'a commenté Griffo, oui, j'essaie d'assembler la plupart des fonctionnements dans IB et d'ajuster le code au besoin. Je vais essayer l'approche de son lien ci-joint et de rendre compte.

Répondre

0

Je pense que this SO question répond à votre question

+0

créer mon ViewController racine et l'ajouter à ma plume fenêtre principale puis? (Ou est-ce que la navigation de cette façon la dissocie complètement du concept de «nib»?) J'essaie de comprendre comment ce processus s'intègre dans Interface Builder (ou non). – Wickethewok

+0

Dans l'exemple, vous indiquez que l'utilisateur peut avoir besoin d'être redirigé vers une autre vue s'il appuie sur un bouton ou autre. Ainsi, pour chacune de ces situations, vous devez décider si cela les amène à un autre onglet de votre barre d'onglets, un parent de la vue actuelle ou un enfant de la vue actuelle. Vous pouvez éviter d'utiliser IB tout à fait si vous voulez, il ya des messages sur SO qui montrent comment faire cela et plusieurs livres suivent cette approche. Je trouve plus facile de faire la plupart des choses dans IB, puis de les modifier manuellement dans le code si nécessaire. Si vous avez besoin de conseils sur quelque chose de plus spécifique, posez votre question plus en détail; o) – conorgriffin

0

Comment de montrer dialogue modale? Par exemple, si vous avez UIButton dans votre contrôleur onglet:

  1. associé avec méthode:

    [myButton addTarget:self action:@selector(onDoSomething:) forControlEvents: UIControlEventTouchUpInside];

  2. dans la méthode - (void) onDoSomething: (id) _sender ouvrir votre boîte de dialogue modale:

    [self presentModalViewController:mDoingsomethingController animated:YES];

  3. mettre en œuvre "faire quelque chose" classe de contrôleur et su ppliquer avec « fait » bouton et méthode « onDone » contenant

    [self dismissModalViewControllerAnimated:YES];

Questions connexes