Представьте, что у вас есть последовательность представлений в раскадровке:
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