Как вернуться к корневому контроллеру представления, а затем перейти к другому представлению?

Я пишу простое приложение, которое имеет 3 контроллера представления. Контроллер корневого представления — это item listing, базовое табличное представление. Вне этого контроллера представления я выдвигаю два разных контроллера представления на основе некоторого взаимодействия с пользователем -контроллер представления create itemили контроллер представления view item.

Итак, переходы раскадровки просто выглядят как буква V или что-то в этом роде.

На моем контроллере представления create itemя хотел бы, чтобы он возвращался к корневому контроллеру представления, когда пользователь создает новый элемент, а затем нажимал на контроллер view item, чтобы я мог посмотреть на вновь созданный элемент.

Кажется, я не могу заставить это работать. Достаточно просто вернуться к корневому контроллеру представления, но я не могу нажать этот контроллер view item.

Любые идеи? Я вставил свой код ниже. Функция всплывающего окна работает, но новый вид никогда не появляется.

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

                                          }];

}
15
задан Ryan 5 August 2012 в 23:18
поделиться