Domanda

Sto seguendo l'applicazione CoreDataRecipes per mostrare modaly lo schermo aggiuntivo quando voglio aggiungere un nuovo elemento. Tuttavia non riesco a ottenere la barra per visualizzare in alto in modo da poter premere 'Fatto' o 'Cancellare'.

Nel XI ter chiamando il controller modale ho il pulsante + legata al modale scorrere il controller tramite IB.

Ho il seguito nella mia modale di controllo

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;

Nel mio viewDidLoad

Il modale regolatore visualizza bene, tranne non c'è un bar, quindi non posso lasciare quello schermo.

È stato utile?

Soluzione

È necessario aggiungere prima della popover è effettivamente presentato.

Dove si crea il popover modale, è necessario creare all'interno di un'UINavigationController prima.

Quindi, procedere come segue.

 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];

che darà la vista modale della barra di navigazione, che si sta cercando di modificare.

Altri suggerimenti

In alternativa , si potrebbe mantenere il vostro segue storyboard. In Xcode, selezionare il controller della vista che si sta tentando di transizione verso e incorporarlo in un controller di navigazione.

Ora, nel viewDidLoad di quel controller della vista, aggiungere:

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

e infine la richiamata:

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

Se avete solo bisogno l'aspetto della barra, non proprio la sua funzionalità, è possibile trascinare la barra di navigazione (UINavigationBar) o barra degli strumenti (UIToolbar) Controll dal pannello multimediale sul vostro vista e passare da lì.

ho avuto una situazione simile in cui mi stava caricando un UITableViewController in un containerView. Il containerView era all'interno di un UIViewController che è stato presentato in un modo modale.

Io, come voi, necessaria la barra di navigazione per avere un titolo e un pulsante Done / Annulla.

Dopo traboccante lo stack, ho finalmente fatto questo -

trascinato un UIView come primo elemento nella tabella Visualizza nel IB. Questo ha automaticamente un'altezza di 44 punti e scattò verso l'alto. E 'anche spostato i miei verso il basso prima sezione.

ho trascinato un UIButton (pulsante Fine) all'interno di questa vista. Creato un IBOutlet ad esso e chiamato

    [self dismissViewControllerAnimated:YES completion:nil];

Disclaimer:

1) Questo falso nav-bar farà scorrere insieme alla Tableview. 2) Questo potrebbe non essere una soluzione per quello che Bot ha chiesto, ma è un'opzione per altri che potrebbero essere alla ricerca di qualcosa di simile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top