Закрытие представления, отображаемого через модальный переход

Я вручную вызываю переход (установленный как модальный), чтобы отобразить форму входа в Xcode 4.2, используя раскадровки со следующей строкой кода:

[self performSegueWithIdentifier:@"LoginSegue" sender:nil];

Вероятно, мне не хватает чего-то очень простого, однако я не могу найти способ программно закрыть представление входа в систему и вернуться к предыдущему представлению.

Представление является частью контроллера представления навигации, поэтому установка типа перехода на «push» позволяет мне использовать кнопку «Назад», чтобы отправить меня обратно на мой предыдущий экран, но в «модальном» режиме я не совсем уверен, как это сделать. добиться этого (например, после нажатия кнопки)

Любая помощь приветствуется.


person Nick    schedule 14.12.2011    source источник
comment
xcode - это только IDE, я отредактирую это   -  person Daij-Djan    schedule 30.12.2012


Ответы (4)


Если ваша цель развертывания - iOS 5.0 или новее, используйте это сообщение:

[self dismissViewControllerAnimated:YES completion:nil];

Или в Swift:

self.dismissViewControllerAnimated(true, completion: nil)

Если ваша цель развертывания старше, используйте это (устаревшее) сообщение:

[self dismissModalViewControllerAnimated:YES];
person rob mayoff    schedule 14.12.2011
comment
Спасибо, Роб, я уже пробовал это, и, похоже, ничего не помогает. Есть ли здесь какие-то особые условия? - person Nick; 15.12.2011
comment
Я сделал тривиальный тестовый пример с двумя венчурными капиталистами в раскадровке. Первоначальный VC имеет модальную кнопку с модальным переходом ко второму VC. Второй VC имеет кнопку Dismiss, подключенную к методу, который выполняет [self dismissModalViewControllerAnimated:YES]. Работает как положено. Я не знаю никаких особых условий. - person rob mayoff; 15.12.2011
comment
Я просто хочу отметить, что я решил эту проблему. Поскольку я был новичком в раскадровках, я не устанавливал для своего типа перехода один модальный экземпляр, поэтому это была ошибка пользователя! Спасибо. - person Nick; 20.12.2011
comment
Я также пробую это: [self.presentingViewController dismissViewControllerAnimated: ДА, завершение: nil], и он тоже работает, почему? - person jianpx; 03.08.2013
comment
Контроллер представления представления делает отклонение. Когда вы отправляете его представленному контроллеру представления, представленный контроллер представления автоматически пересылает сообщение представляющему контроллеру представления. - person rob mayoff; 03.08.2013
comment
Используйте NULL для обработчика завершения. [self dismissViewControllerAnimated:YES completion:NULL]; - person Steven; 25.04.2014

[self dismissViewControllerAnimated:YES completion:nil]; это новый способ в IOS5

person denny    schedule 25.06.2012

Следующее должно работать нормально ...

[self dismissModalViewControllerAnimated:YES];

Я делаю именно это со страницей входа в моем последнем руководстве здесь, без проблем.

person Simon    schedule 15.12.2011
comment
Теперь устарело в iOS7: вместо этого используйте dismissViewControllerAnimated: Завершение :. - person Peter Johnson; 01.07.2014

Следующий код работает в Swift 3:

 self.dismiss(animated: true, completion: nil)
person Bogdan Razvan    schedule 13.07.2017