Поиск…
Обзор
Из документации Apple:
Объект UIStoryboardSegue отвечает за выполнение визуального перехода между двумя контроллерами представлений . Кроме того, объекты segue используются для подготовки к переходу от одного контроллера представления к другому. Объекты Segue содержат информацию о контроллерах представлений, участвующих в переходе . Когда срабатывает segue, но до появления визуального перехода среда исполнения раскадровки вызывает метод prepareForSegue: sender: текущий метод управления представлением, чтобы он мог передавать любые необходимые данные контроллеру представления, который должен отображаться.
Атрибуты
стриж
sourceViewController: UIViewController {get}
destinationViewController: UIViewController {get}
identifier: String? {get}
Рекомендации:
Подготовка контроллера вида до запуска Segue
Подготовка к обучению :
func prepareForSegue(_ segue:UIStoryboardSegue, sender sender:AnyObject?)
Уведомляет диспетчер представлений о необходимости выполнить сеанс segue
параметры
segue : объект segue.
отправитель : объект, который инициализировал segue.
Пример в Swift
Выполните задачу, если идентификатором сегмента является «SomeSpecificIdentifier»
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "SomeSpecificIdentifier" {
//- Do specific task
}
}
Решите, нужно ли выполнять вызов Segue.
ShouldPerformSegueWithIdentifier :
func shouldPerformSegueWithIdentifier(_ identifier:String, sender sender:AnyObject?) -> Bool
Определяет, должен ли выполняться сеанс с указанным идентификатором.
параметры
Идентификатор : строка, которая идентифицирует инициированный сеанс
Отправитель : объект, который инициализировал segue.
Пример в Swift
Выполняйте только segue, если идентификатор «SomeSpecificIdentifier»
override func shouldPerformSegueWithIdentifier(identifier:String, sender:AnyObject?) -> Bool {
if identifier == "SomeSpecificIdentifier" {
return true
}
return false
}
Использование Segues для перемещения назад в стеке навигации
Разморозить Segues
Unwind Segues дает вам возможность «размотать» стек навигации и указать место назначения, куда нужно вернуться. Подпись этой функции является ключом к распознанию интерфейса Interface Builder. Он должен иметь возвращаемое значение IBAction и принимать один параметр UIStoryboardSegue . Имя функции не имеет значения. Фактически, функция даже не должна ничего делать. Это только как маркер, которым UIViewController является пунктом назначения Unwind Segue. [Источник] [1]
Требуемая подпись разматывания
Цель C:
-(IBAction)prepareForUnwind:(UIStoryboardSegue *)segue {
}
Swift:
@IBAction func prepareForUnwind(segue: UIStoryboardSegue) {
}
Программный запуск Trigger Segue
PerformSegueWithIdentifier:
func performSegueWithIdentifier(_ identifier:String, sender sender:AnyObject?)
Инициирует segue с указанным идентификатором из файла раскадровки текущего контроллера
параметры
Идентификатор : строка, которая идентифицирует инициированный сеанс
Отправитель : объект, который будет инициировать сеанс.
Пример в Swift
Выполнение segue с идентификатором «SomeSpecificIdentifier» из выбора строки таблицы:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
performSegueWithIdentifier("SomeSpecificIdentifier", sender: indexPath.item)
}