Почему я не могу отклонить предыдущий вид в стеке навигации? - PullRequest
2 голосов
/ 19 ноября 2011

Это, вероятно, будет очень очевидно, но здесь идет. У меня есть два ViewController, один из которых отображает сведения о человеке с кнопкой [+], которая открывает другой ViewController, который управляет изменениями Person. Когда лицо, которое должно быть удалено, выдается предупреждение, и если выбрано ОК, представление редактирования должно исчезнуть, и детальное представление также должно исчезнуть / перейти обратно к PersonsListView (не показано в коде ниже).

Я могу заставить EditView отклонить, но я также не могу заставить DetailView отклонить.

Любая помощь приветствуется.

Два ViewControllers:

@implementation PersonDetailViewController
...
- (void)editPerson
{
    PersonDetailEditViewController *editView = [[PersonDetailEditViewController alloc] initWithTenant:self.person];
    [editView setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];

    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:editView];
    [self presentModalViewController:navController animated:YES];    
}
...
@end

и

@implementation PersonDetailEditViewController
...
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex == 1) {
        [Person deletePerson:self.person];
        NSError *error;
        [self.person.managedObjectContext save:&error];
        [[self navigationController] dismissModalViewControllerAnimated:YES];
        // *** HERE I ALSO WANT TO DISMISS THE DETAILVIEW ***
    }
}
...
@end

1 Ответ

1 голос
/ 19 ноября 2011

Предполагая, что PersonDetailViewController представлен в контроллере навигации, вы должны иметь возможность делать то, что вы хотите, добавив следующую строку:

[self.navigationController popViewControllerAnimated:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...