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!(identifieridentifier: String?, sourcesource: UIViewController, destinationdestination: UIViewController)Objective C
- (instancetype)initWithIdentifier:(NSString *)identifiersource:(UIViewController *)sourcedestination:(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(identifieridentifier: String?, sourcesource: UIViewController, destinationdestination: UIViewController, performHandlerperformHandler: () -> Void)Objective C
+ (instancetype)segueWithIdentifier:(NSString *)identifiersource:(UIViewController *)sourcedestination:(UIViewController *)destinationperformHandler:(void (^)(void))performHandlerПараметры
identifierИдентификатор Вы хотите связаться с этим определенным экземпляром перехода. Можно использовать этот идентификатор для дифференциации одного типа перехода от другого во время выполнения.
sourceКонтроллер представления, видимый в начале перехода.
destinationКонтроллер представления для отображения после завершения перехода.
performHandlerБлок, который вызовут, когда переход
performметод вызывают.Возвращаемое значение
Инициализированный объект перехода.
Обсуждение
Вы используете этот метод в качестве альтернативы созданию подкласса. Ваш выполнять обработчик должен выполнить всю работу, необходимую для перехода между источником и целевыми контроллерами представления, точно как будто Вы реализовывали
performметод.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 6.0 и позже.
См. также
