Поиск…


Обзор

Из документации 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)
}


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow