Question

je suis l'application CoreDataRecipes pour montrer modaly l'écran ajouter quand je veux ajouter un nouvel élément. Cependant, je ne peux pas obtenir la barre pour afficher en haut pour que je puisse appuyer sur « Terminé » ou « Annuler ».

Dans le XIB appelant la commande modale Je le bouton + lié à coulissement de façon modale le contrôleur par l'intermédiaire de l'IB.

Je le ci-dessous dans mon contrôleur modal

self.navigationItem.title = @"Add";

    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancel)];
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStyleDone target:self action:@selector(save)];
    self.navigationController.navigationBarHidden = NO;

Dans mon viewDidLoad

Le contrôleur modal affiche bien sauf qu'il n'y a pas de bar, donc je ne peux pas quitter cet écran.

Était-ce utile?

La solution

Vous devez l'ajouter avant la popover est effectivement présenté.

Si vous créez le popover modal, vous devez créer dans un premier UINavigationController.

Alors, procédez comme suit.

 PopoverView *foo = [[PopoverView alloc] initWithNibName:@"PopoverView" bundle:nil];
 // Here you pass through properties if you need too.
 // ...
 UINavigationController *navC = [[UINavigationController alloc] initWithRootView:foo];
 [foo release];

 [self.navigationController presentModalViewController:navC animated:YES];

Cela donnera la vue modale la barre de navigation que vous essayez de modifier.

Autres conseils

Alternativement , vous pourriez maintenir votre story-board Segue. Dans Xcode, sélectionnez le contrôleur de vue que vous essayez de transition et l'intégrer dans un contrôleur de navigation.

dans le viewDidLoad de ce contrôleur de vue, ajouter:

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancel)];

et enfin le rappel:

- (void)cancel {
    [self dismissModalViewControllerAnimated:YES];
}

Ou si vous avez juste besoin de l'apparence de la barre, pas exactement ses fonctionnalités, vous pouvez faire glisser la barre de navigation (UINavigationBar) ou barre d'outils (UIToolbar) controll à partir du panneau Bibliothèque multimédia sur votre point de vue et aller de là.

J'ai eu une situation similaire par lequel je chargeais une UITableViewController dans un containerView. Le containerView était à l'intérieur d'un UIViewController qui a été présenté de façon modale.

I, comme vous, besoin de la barre de navigation pour avoir un titre et un Fait / bouton Annuler.

Après débordement de la pile, j'ai finalement fait cela -

Dragged un UIView que le premier élément dans le Tableau dans l'IB. Cette automatiquement a une hauteur de 44 pts et fit claquer au sommet. Il a également déplacé vers le bas de ma première section.

Je traînais un UIButton (bouton DONE) à l'intérieur de ce point de vue. Création d'un IBOutlet à et appelé

    [self dismissViewControllerAnimated:YES completion:nil];

Disclaimer:

1) Ce faux nav-bar défilera avec le tableview. 2) Cela pourrait ne pas être une solution pour ce Bot a demandé, mais il est une option pour les autres qui pourraient être à la recherche de quelque chose de similaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top