iOS: возврат из нажатого ViewController через методы делегата?

50
6

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

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

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

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

[self dismissViewControllerAnimated:YES completion:nil];

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

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

спросил(а) 2012-03-29T04:58:00+04:00 7 лет, 11 месяцев назад
1
Решение
60

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

ответил(а) 2012-03-29T05:13:00+04:00 7 лет, 11 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема