Sto scrivendo una semplice applicazione che ha 3 controller di vista. Il controller della vista radice è una vista tabella di base item listing
. Al di fuori di questo controller di visualizzazione, spingo due diversi controller di visualizzazione in base all'interazione dell'utente: un controller di visualizzazione create item
o un controller di visualizzazione view item
.Come tornare al controller di visualizzazione radice, ma poi passare a una vista diversa?
Quindi, lo storyboard è simile a una V o qualcosa del genere.
Sul mio controller della vista create item
, vorrei che tornasse al controller di visualizzazione radice quando l'utente crea un nuovo elemento, ma poi spinge al controller view item
in modo che possa guardare l'elemento appena creato.
Non riesco a farlo funzionare. È abbastanza facile tornare al controller di visualizzazione radice, ma non riesco a spingere il controller view item
.
Qualche idea? Ho incollato il mio codice, di seguito. La funzione pop funziona, ma la nuova vista non appare mai.
- (void) onSave:(id)sender {
CLLocation *currentLocation = [[LocationHelper sharedInstance] currentLocation];
// format the thread object dictionary
NSArray* location = @[ @(currentLocation.coordinate.latitude), @(currentLocation.coordinate.longitude) ];
NSDictionary* thread = @{ @"title": _titleField.text, @"text": _textField.text, @"author": @"mustached-bear", @"location": location };
// send the new thread to the api server
[[DerpHipsterAPIClient sharedClient] postPath:@"/api/thread"
parameters:thread
success:^(AFHTTPRequestOperation *operation, id responseObject) {
// init thread object
Thread *thread = [[Thread alloc] initWithDictionary:responseObject];
// init view thread controller
ThreadViewController *viewThreadController = [[ThreadViewController alloc] init];
viewThreadController.thread = thread;
[self.navigationController popToRootViewControllerAnimated:NO];
[self.navigationController pushViewController:viewThreadController animated:YES];
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
[self.navigationController popToRootViewControllerAnimated:YES];
}];
}
Non creerei controller di vista diversi per "Crea elemento" e "Visualizza elemento". Vero che potresti voler vedere l'oggetto dopo averlo creato, ma c'è sempre un'altra possibilità che il tuo utente possa voler modificare l'oggetto dopo averlo visto. Sarebbe più semplice progettare un controller di visualizzazione per consentire la creazione, la visualizzazione e la modifica in un'unica vista. La maggior parte delle app la progetta in questo modo. Risparmia il tuo tempo seguendoti. – Rick