Piszę prostą aplikację, która ma 3 kontrolery widoku. Główny kontroler widoku to podstawowy widok tabeli item listing
. Poza tym kontrolerem widoku przepycham dwa różne kontrolery widoku na podstawie interakcji użytkownika - kontrolki widoku lub kontrolera widoku create item
.Jak wrócić do kontrolera widoku root, a następnie przejść do innego widoku?
Tak więc scenki wyglądają jak litery V lub coś w tym stylu.
Na moim kontrolerze widoku create item
chciałbym, aby powrócił do kontrolera widoku głównego, gdy użytkownik utworzy nowy element, ale następnie przesyła do kontrolera view item
, aby móc obejrzeć nowo utworzony element.
Nie mogę sprawić, żeby to zadziałało. Wystarczy, że wrócisz do kontrolera widoku głównego, ale nie mogę przepchnąć tego kontrolera view item
.
Wszelkie pomysły? Wkleiłem mój kod, poniżej. Funkcja pop działa, ale nowy widok nigdy się nie pojawia.
- (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];
}];
}
Nie utworzyłbym różnych kontrolerów widoku dla "Utwórz przedmiot" i "Wyświetl przedmiot". Prawdą jest, że możesz chcieć wyświetlić element po jego utworzeniu, ale zawsze istnieje inna możliwość, że użytkownik może chcieć EDYTOWAĆ przedmiot po jego obejrzeniu. Byłoby łatwiej zaprojektować jeden kontroler widoku, aby umożliwić tworzenie, przeglądanie i edytowanie w jednym widoku. Większość aplikacji projektuje je w ten sposób. Zaoszczędź swój czas na segregacji. – Rick