UIStoryboardSegue
Наследование
-
NSObject
-
UIStoryboardSegue
-
UIStoryboardPopoverSegue
-
NSObject
-
UIStoryboardSegue
-
UIStoryboardPopoverSegue
Оператор импорта
Swift
import UIKit
Objective C
@import UIKit;
Доступность
Доступный в iOS 5.0 и позже.
A UIStoryboardSegue
объект ответственен за выполнение визуального перехода между двумя контроллерами представления. Кроме того, объекты перехода используются для подготовки к переходу от одного контроллера представления до другого. Объекты перехода содержат информацию о контроллерах представления, вовлеченных в переход. Когда переход инициирован, но прежде чем визуальный переход происходит, время выполнения раскадровки вызывает контроллер текущего представления prepareForSegue:sender:
метод так, чтобы это могло передать любые необходимые данные контроллеру представления, собирающемуся быть выведенным на экран.
UIStoryboardSegue
класс поддерживает стандартные визуальные переходы, доступные в UIKit. Можно также разделить на подклассы для определения пользовательских переходов между контроллерами представления в файле раскадровки.
Вы не создаете объекты перехода непосредственно. Вместо этого время выполнения раскадровки создает их, когда оно должно выполнить переход между двумя контроллерами представления. Можно все еще инициировать переход программно с помощью performSegueWithIdentifier:sender:
метод UIViewController
если Вы хотите. Вы могли бы сделать так для инициирования перехода из источника, добавленного программно и поэтому не доступный в Интерфейсном Разработчике.
Разделение на подклассы примечаний
Можно разделить на подклассы UIStoryboardSegue
в ситуациях, где Вы хотите обеспечить пользовательский переход между контроллерами представления в Вашем приложении. Для использования пользовательского перехода создайте строку перехода между надлежащими контроллерами представления в Интерфейсном Разработчике и установите его тип в Пользовательский в инспекторе; необходимо также указать имя класса перехода для использования в инспекторе.
Когда время выполнения раскадровки обнаруживает пользовательский переход, оно создает новый экземпляр Вашего класса, конфигурирует его с объектами контроллера представления, просит источник контроллера представления подготавливаться к переходу, и затем выполняет переход.
Методы для переопределения
Для пользовательских переходов основной метод, который необходимо переопределить, perform
метод. Время выполнения раскадровки вызывает этот метод, когда пора выполнить визуальный переход от контроллера представления в sourceViewController
к контроллеру представления в destinationViewController
. Если необходимо инициализировать какие-либо переменные в пользовательском подклассе перехода, можно также переопределить initWithIdentifier:source:destination:
метод и инициализирует их в Вашей пользовательской реализации.
Альтернативы разделению на подклассы
Если Ваш переход не должен хранить дополнительную информацию или обеспечить что-нибудь кроме aperform
метод, рассмотрите использование segueWithIdentifier:source:destination:performHandler:
метод вместо этого.
-
Инициализирует и возвращает объект перехода раскадровки для использования в выполнении перехода.
Объявление
Swift
init!(identifier
identifier
: String?, sourcesource
: UIViewController, destinationdestination
: UIViewController)Objective C
- (instancetype)initWithIdentifier:(NSString *)
identifier
source:(UIViewController *)source
destination:(UIViewController *)destination
Параметры
identifier
Идентификатор Вы хотите связаться с этим определенным экземпляром перехода. Можно использовать этот идентификатор для дифференциации одного типа перехода от другого во время выполнения.
source
Контроллер представления, видимый в начале перехода.
destination
Контроллер представления для отображения после завершения перехода.
Возвращаемое значение
Инициализированный объект перехода.
Обсуждение
Этот метод является определяемым инициализатором для объектов перехода. Если Вы разделяете на подклассы
UIStoryboardSegue
, можно переопределить этот метод и выполнить любую пользовательскую инициализацию в реализации. Ваша реализация должна вызватьsuper
сначала и затем продолжите, если не возвращается тот методnil
.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 5.0 и позже.
-
sourceViewController
СвойствоИсходный контроллер представления для перехода. (только для чтения)
Объявление
Swift
var sourceViewController: AnyObject { get }
Objective C
@property(nonatomic, readonly) id sourceViewController
Обсуждение
Это свойство содержит контроллер представления, содержание которого выведено на экран в начале перехода.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 5.0 и позже.
-
destinationViewController
СвойствоЦелевой контроллер представления для перехода. (только для чтения)
Объявление
Swift
var destinationViewController: AnyObject { get }
Objective C
@property(nonatomic, readonly) id destinationViewController
Обсуждение
Это свойство содержит контроллер представления, содержание которого должно быть выведено на экран в конце перехода.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 5.0 и позже.
-
identifier
СвойствоИдентификатор для объекта перехода. (только для чтения)
Объявление
Swift
var identifier: String? { get }
Objective C
@property(nonatomic, readonly) NSString *identifier
Обсуждение
Вы присваиваете идентификаторы своим переходам в Интерфейсном Разработчике. Идентификатор является строкой что Ваше использование приложения для различения одного перехода от другого. Например, если у Вас есть исходный контроллер представления, который может непосредственно перейти к двум или больше различным целевым контроллерам представления, Вы присвоили бы различные идентификаторы каждому переходу так, чтобы исходный контроллер представления
prepareForSegue:sender:
метод мог сказать им независимо и подготовить каждый переход соответственно.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 5.0 и позже.
-
Выполняет визуальный переход для перехода.
Объявление
Swift
func perform()
Objective C
- (void)perform
Обсуждение
Подклассы переопределяют этот метод и используют его для выполнения анимаций от представлений в
sourceViewController
к представлениям вdestinationViewController
. Как правило, Вы использовали бы UIKit или Базовую Анимацию для установки анимации от одного набора представлений к следующему. Для более сложных анимаций Вы могли бы взять изображение снимка двух иерархий представления и управлять изображениями вместо фактических объектов представления.Независимо от того, как Вы выполняете анимацию, в конце его, Вы ответственны за установку целевого контроллера представления (и его представления) в правильном месте так, чтобы это могло обработать события. Например, если необходимо было реализовать пользовательский модальный переход, Вы могли бы выполнить свои анимации с помощью изображений снимка, и затем в конце вызывают
presentModalViewController:animated:
метод (с отключенными анимациями) для установки надлежащего модального отношения между источником и местом назначения просматривает контроллеры.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 5.0 и позже.
-
init (identifier:source:destination:performHandler:) + segueWithIdentifier:source:destination:performHandler:
Создает переход, вызывающий блок для выполнения перехода перехода.
Объявление
Swift
convenience init(identifier
identifier
: String?, sourcesource
: UIViewController, destinationdestination
: UIViewController, performHandlerperformHandler
: () -> Void)Objective C
+ (instancetype)segueWithIdentifier:(NSString *)
identifier
source:(UIViewController *)source
destination:(UIViewController *)destination
performHandler:(void (^)(void))performHandler
Параметры
identifier
Идентификатор Вы хотите связаться с этим определенным экземпляром перехода. Можно использовать этот идентификатор для дифференциации одного типа перехода от другого во время выполнения.
source
Контроллер представления, видимый в начале перехода.
destination
Контроллер представления для отображения после завершения перехода.
performHandler
Блок, который вызовут, когда переход
perform
метод вызывают.Возвращаемое значение
Инициализированный объект перехода.
Обсуждение
Вы используете этот метод в качестве альтернативы созданию подкласса. Ваш выполнять обработчик должен выполнить всю работу, необходимую для перехода между источником и целевыми контроллерами представления, точно как будто Вы реализовывали
perform
метод.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
См. также