iPhone - Отклонение предыдущего ModalViewControllerAnimated: YES и добавление нового ModalViewControllerAnimated: YES - ошибка - PullRequest
0 голосов
/ 25 января 2011

У меня есть главное окно, в котором появляется модальный контроллер вида. Когда это сделано в этом контроллере модального представления, оно возвращается в главное окно, а затем закрывается. Затем в главном окне появляется новый модальный контроллер вида с анимированным = YES.

Проблема в том, что вызов dismiss, который выполняется внутри первого modalviewcontroller, применяется к обоим, а SecondController никогда не отображается.

Помещение первого отклонения до или после родительского вызова ничего не меняет. Если первое отклонение установлено с помощью animate = NO, все работает нормально. Но мне нужна анимация.

main.m

- (void) entry {

    FirstController *nextWindow = [[FirstController alloc] initWithNibName:@"theNIB" bundle:nil];

    nextWindow.caller = self;

    UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:nextWindow];

    [self.navigationController presentModalViewController:navController animated:YES];

    [nextWindow release];
    [navController release];
}


- (void) thingsDoneInFirstModalController:(OBJECT)returnValue retval2:(OBJECT2)returnValue2 {
    [self display2ndController];
}

- (void) display2ndController {

    SecondController *nextWindow;

    nextWindow = [[SecondController alloc] initWithNibName:@"NIB2" bundle:nil];

    UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:nextWindow];
    [self.navigationController presentModalViewController:navController animated:YES];
    [navController release];
    [nextWindow release];
}

1-й ModalViewController.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    [self.navigationController dismissModalViewControllerAnimated:YES];
    [self.caller thingsDoneInFirstModalController:theResult retval2:someMoreResult];
}

Что я могу сделать? Я не хочу ничего видеть ... Исчезнуть ...

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

1 Ответ

2 голосов
/ 25 января 2011

Причина, скорее всего, в анимации, когда вы ее отклоняете.Попробуйте показать второе модальное окно, используя performSelector:withObject:afterDelay:, метод, унаследованный от NSObject.Ссылка здесь .

...