Представьте, что у вас есть последовательность представлений в раскадровке:
A -> ... -> Z
Вы хотите, чтобы на экране была кнопка, Zкоторая позволяет пользователю полностью вернуться к A.
Итак, что вам нужно сделать, так это предоставить представление, которое вы хотите полностью вернуть, в данном случае A, методу экземпляра, который помечен как a IBActionи принимает один параметр типа UIStoryboardSegue *. Имя метода и переменная значения не имеют. То, что вы делаете в рамках реализации, тоже не имеет значения. Вот пример:
Obj-C: Интерфейс
In A(не Z):
- (IBAction)cancelSignup:(UIStoryboardSegue *)unwindSegue;
В Aреализации (а не в Z):
- (IBAction)cancelSignup:(UIStoryboardSegue *)unwindSegue {
// Only "implemented" to satisfy a respondsToSelector: search.
// You can actually implement more stuff here, if you want, IE, if
// you need to reach out to a server to mention that this screen was
// returned to from a later screen.
}
: Swift
В A's источник (не Z' s):
@IBAction func cancelSignup(unwindSegue: UIStoryboardSegue) {
// Only "implemented" to satisfy a respondsToSelector: search.
// You can actually implement more stuff here, if you want, IE, if
// you need to reach out to a server to mention that this screen was
// returned to from a later screen.
}
Теперь, в раскадровку, controlперетащите элемент на Zк (IE, кнопка отмены) Z«с Exit. Он просканирует все представления, расположенные выше в иерархии представлений, которые имеют IBActionэлемент, который принимает только одно UIStoryboardSegue *действие в качестве действия, и перечислит их, чтобы вы могли выбрать из них.
Надеюсь, это было более прямым и полезным, чем существующие ответы. Я обнаружил, что эта ссылка была особенно полезной, поэтому, если есть какая-то деталь, которую вы все еще не знаете после прочтения моего ответа, возможно, это поможет вам (я попытался просто сжать всю полезную информацию из этой длинной статьи в короткий ответ):
http://www.freelancemadscience.com/fmslabs_blog/2012/9/24/advanced-storyboard-techniques.html