Нажатие на один и тот же экземпляр контроллера представления более одного раза не поддерживается? - PullRequest
0 голосов
/ 11 января 2010

У меня есть один обычный UIViewCOntroller (дома), в котором у меня есть метод IBAction, как

- (IBAction)goto1:(id)sender
{

self. goto1Controller.modalTransitionStyle =   UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:self. goto1Controller animated:YES];
}

работает нормально. goto1Controller - это обычный UIViewcontroller, в котором я использовал одно действие через пользовательский навигационный контроллер, через который я иду на другой контроллер, как в self.goto1Controller

- (IBAction)goto2:(id)sender
 {      
    [userdefNavController pushViewController:goto2Controller animated:YES];
[self presentModalViewController: userdefNavController animated:NO];
}

я возвращаюсь из goto2Controller в goto1Controller через

     [self dismissModalViewControllerAnimated:YES];

все работает нормально ... но когда я использую этот же метод ([self dismissModalViewControllerAnimated: YES];), чтобы вернуться домой, я должен нажать дважды ... а также когда я нажимаю - (IBAction) goto2: (id) отправитель снова после прихода из goto2Controller произошел сбой .. ошибка также "Не поддерживается одновременное нажатие на один и тот же экземпляр контроллера представления" любое решение? у меня есть в моем viewdidload как

 userdefNavController = [[UINavigationController alloc] initWithRootViewController:self];

1 Ответ

4 голосов
/ 12 января 2010

Вы не обязательно должны смешивать presentModalViewController и pushViewController на контроллере навигации. Есть разные причины использовать каждый из них. Вот что говорится в руководстве по программированию контроллера *1001*:

Чаще всего приложения используют модальные рассматривать контроллеры как временные прерывание для получения ключа информация от пользователя. Тем не мение, Вы также можете использовать модально представлены просмотр контроллеров для реализации альтернативные интерфейсы для вашего приложение в определенное время.

Если у вас есть иерархические данные, создайте детализацию, отобразив последовательные контроллеры представления, используя -pushNavigationController: aniamted :. Когда в сообщении об ошибке говорится, что вы не можете отправить один и тот же экземпляр, это не значит, что вы не можете создать новый экземпляр того же класса. Просто создайте новый экземпляр контроллера представления, который вы хотите нажать.

Если у вас есть особый случай, когда вам нужно представить что-то необычное пользователю, используйте -presetnModalViewController:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...