iOS: возврат из запущенного ViewController через методы делегата? - PullRequest
1 голос
/ 29 марта 2012

Я боролся с этим уже почти 2 часа и не повезло.

У меня есть View Controller.Давайте назовем это First.Я нажимаю кнопку, и она переводит меня в контроллер второго вида в модальном стиле.Во втором я добавляю некоторые данные, которые я могу сохранить или удалить с помощью двух кнопок панели навигации: Сохранить и Отмена.оба делают то, что делают, а потом возвращают меня на предыдущий экран.Я реализовал протокол, и я использую делегата.Пока все отлично работает.

Сегодня я решил иметь контроллер третьего вида, к которому можно получить доступ со второго виртуального канала.Проблема в том, что я не мог перейти в ТРЕТЬЕ, пока не изменил переход с Первого на Второе на PUSH (вместо модального).Теперь я могу перейти с первого на второе и со второго на третье.Все снова хорошо.

ПРОБЛЕМА: Если я нажимаю Отмена или Сохранить на втором виртуальном канале, он вызывает методы, он использует делегата для перехода к FIRST и выполнения какой-то функции, но при вызове:

[self dismissViewControllerAnimated:YES completion:nil];

ничего не происходит, и я застрял на втором представлении.В основном я использовал MODAL с методами делегирования и протокола ... Я переключился на PUSH, и я не могу избавиться от своего второго представления и вернуться к первому.Кажется, что dismissViewController ничего не делает.

Любая помощь с благодарностью.Я могу исправить все это, удалив кнопку отмены и используя НАЗАД, который поставляется по умолчанию с PUSH, но я просто хочу знать, в чем проблема с ним .. СПАСИБО !!

1 Ответ

2 голосов
/ 29 марта 2012

На вашем втором viewContrller вызовите метод UINavigationController popViewControllerAnimated: или popToRootViewControllerAnimated:. Это вытолкнет контроллер (тот, кто вызывает, который является вторым) из стека навигации. Вы можете получить навигационный контроллер в UIViewController через его свойство navigationController.

...