0

У меня есть контроллер просмотра паролей, который отображается всегда, когда приложение активировано.Представление двух контроллеров представления, отклонение правильного контроллера вида

У меня есть другой диспетчер представлений, который отображается нажатием кнопки. В этом есть процесс, который нужно показать, и как только он полностью рассеется.

Сценарий:

1) Представить эту точку зрения регулятора, начинается процесс.

2) Прежде чем этот процесс будет завершен, нажмите кнопку «домой».

3) Теперь откройте приложение снова.

4) Контроллер просмотра паролей представляется в обязательном порядке.

5) В это время завершается процесс, начатый на шаге 1. Вызывается метод увольнения. Но контроллер просмотра паролей отклоняется вместо этого процесса VC.

Как я могу уволить конкретный представленный VC?

**Edit:** 

Я пробовал по-другому. Когда я представляю passcodeVC из appdelegate, я создаю новую навигацию и устанавливаю ее в rootViewController. Ранее nav хранится в ссылке. Здесь я преуспел в сохранении вида кода доступа. Просмотр пароля теперь не отменяется.

Когда пользователь вводит пароль, я снова меняю rootviewcontroller на старый. Я думал, это сработает. Но это не так. MailVc отклоняется. И когда я пытаюсь снова отправить mailVC, он говорит: this is already presented.

Похоже, поскольку я меняю rootVC, а затем dissmissVC вызывается, когда его нет в поле зрения. Может кто-нибудь объяснить мне это.

Спасибо.

+0

Вы попробовали делегировать шаблон? Также для выполнения процесса не присутствовать в качестве контроллера, или если вы делаете это, просто сохраняйте прогресс, когда приложение входит в фоновый режим и отклоняет контроллер прогресса – Retro

+0

Да. Я решил проблему с помощью делегата. Но я хотел знать отредактированный вопрос. Почему это произошло. Когда вид не находится в корне окна и вызывается вызов. Вид отклонен. Но позже, когда я пытаюсь представить снова, он говорит, что уже представляет. Даже я создал новый экземпляр этого класса для представления. – Durgaprasad

+0

Как вы, корневой контроллер, rootVC представил представление, поэтому, когда вы устанавливаете его снова, прежде чем изменять rootVC, просто отпустите прогресс VC или, как я сказал вам, когда приложение входит в фон. – Retro

ответ

0

Перед тем, как отклонить текущий контроллер, вы можете проверить его тип. Если это kindOfClass (YourPasswordViewController), не отклоняйте его. В противном случае, уволите.

От вас UIViewController, который выполняет расчет и отклоняет текущий UIViewController, выполните следующие действия.

Получить экземпляр для вашего UINavigationController. Получите viewControllers собственности. Это NSArray. Получите доступ к последнему UIViewController и проверьте, является ли это объектом PasswordUIViewController. Если это так, то не отклоняйте его.

+0

Хорошо. Но как найти этот контроллер вида. NavCtrl имеет свойство viewcontrollers, которое дает точечные представления. Как получить представленный вид. – Durgaprasad

+0

@ Durgaprasad обновил мой ответ. Дайте мне знать, если у вас есть путаница. –

+0

Когда я обращаюсь к nav.viewcontrollers, я получаю массив homeVc и mailVc. Я не представляю viewcontroller. имеют два представленных vc, то есть mailVc и passcodeVC. – Durgaprasad