UIStateRestoring
Наследование
Не применимый
Оператор импорта
Swift
import UIKit
Objective C
@import UIKit;
Доступность
Доступный в iOS 7.0 и позже.
UIStateRestoring протокол позволяет Вам включать любой объект в свои архивы восстановления состояния. Можно добавить, что восстановление состояния возражает против архива непосредственно или путем ссылки на них от другого объекта, сохраняющегося, такие как контроллер представления. Методы протокола позволяют Вам сохранить достаточно информации об объекте найти или воссоздать его во время следующего цикла запуска.
При принятии этого протокола в пользовательских объектах необходимо также не забыть регистрировать те объекты с помощью registerObjectForStateRestoration:restorationIdentifier: метод UIApplication класс. Вы не должны регистрировать представления или контроллеры представления явно, потому что UIKit регистрирует те объекты автоматически. Контроллеры представления принимают этот протокол так, чтобы они могли использоваться в качестве родителя восстановления одного из Ваших пользовательских объектов.
-
restorationParentСвойствоРодительский объект раньше определял объем текущего объекта. (только для чтения)
Объявление
Swift
optional var restorationParent: UIStateRestoring! { get }Objective C
@property(nonatomic, readonly) id< UIStateRestoring > restorationParentОбсуждение
Возврат объекта от этого свойства позволяет Вам использовать тот же идентификатор восстановления для объектов с подобным поведением, но различными родителями. При регистрации объектов,
registerObjectForStateRestoration:restorationIdentifier:метод проверяет значение этого свойства, с помощью значения в качестве содержания объема для объекта. Например, объект связался с целью, контроллер может сделать контроллер представления его родителем.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
objectRestorationClassСвойствоКласс, ответственный за создание этого объекта при восстановлении состояния приложения. (только для чтения)
Объявление
Swift
optional var objectRestorationClass: AnyObject.Type! { get }Objective C
@property(nonatomic, readonly) Class< UIObjectRestoration > objectRestorationClassОбсуждение
Если объект имеет связанный класс восстановления,
objectWithRestorationIdentifierPath:coder:метод того класса вызывают во время восстановления состояния. Тот метод ответственен за возврат объекта, соответствующего предоставленную информацию идентификатора пути. Если это свойствоnil, объект должен уже существовать и быть зарегистрирован в механизме восстановления состояния так, чтобы это могло быть найдено неявно. Можно зарегистрировать объект с помощьюregisterObjectForStateRestoration:restorationIdentifier:метод во время запуска.Класс восстановления должен соответствовать
UIObjectRestorationпротокол.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Кодирует связанную с состоянием информацию для объекта.
Объявление
Swift
optional func encodeRestorableStateWithCoder(_coder: NSCoder)Objective C
- (void)encodeRestorableStateWithCoder:(NSCoder *)coderПараметры
coderОбъект кодера использовать для кодирования состояния объекта.
Обсуждение
Можно реализовать этот метод для любого объекта, имеющего информацию состояния, которую Вы хотите сохранить. При решении, что данные сохранить, запишите, что самый маленький объем данных должен был восстановить объект к своей текущей конфигурации. Информация Вы, сохранение должно быть данными, которые Вы не могли легко воссоздать. Можно также сохранить ссылки на другие объекты, такие как контроллер представления, использовавший объект.
Строго рекомендуется вызвать
superв некоторый момент во время Вашей реализации, чтобы дать родительским классам возможность сохранить информацию также.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
См. также
-
Декодирует и восстанавливает связанную с состоянием информацию для объекта.
Объявление
Swift
optional func decodeRestorableStateWithCoder(_coder: NSCoder!)Objective C
- (void)decodeRestorableStateWithCoder:(NSCoder *)coderПараметры
coderОбъект кодера использовать для декодирования состояния представления.
Обсуждение
Если Ваши поддержки приложений утверждают восстановление, можно реализовать этот метод на любом объекте, для которого Вы также переопределили
encodeRestorableStateWithCoder:метод. Ваша реализация этого метода должна считать любые сохраненные информации состояния из архива и использовать его для восстановления объекта к его предыдущей конфигурации. Если ВашencodeRestorableStateWithCoder:метод вызываютsuper, этот метод должен так же вызватьsuperв некоторый момент в его реализации.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
См. также
-
Вызванный после того, как все объекты имели возможность декодировать их состояние.
Объявление
Swift
optional func applicationFinishedRestoringState()Objective C
- (void)applicationFinishedRestoringStateОбсуждение
Реализуйте этот метод, по мере необходимости, для выполнения дополнительной конфигурации восстановленного объекта. Когда все объекты декодировались, этот метод вызывают к концу процесса восстановления. Вы могли бы использовать этот метод для восстановления состояния, существующего между многократными объектами или в случаях, где у Вас есть зависимости, делающие декодирование тех объектов в определенном порядке трудным.
Порядок, в котором к этому методу обращаются декодируемые объекты, не гарантируется.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 7.0 и позже.
-
Следующие ключи доступны в архивах восстановления.
Объявление
Swift
let UIStateRestorationViewControllerStoryboardKey: String let UIApplicationStateRestorationBundleVersionKey: String let UIApplicationStateRestorationUserInterfaceIdiomKey: String let UIApplicationStateRestorationTimestampKey: String let UIApplicationStateRestorationSystemVersionKey: StringObjective C
NSString *const UIStateRestorationViewControllerStoryboardKey; NSString *const UIApplicationStateRestorationBundleVersionKey; NSString *const UIApplicationStateRestorationUserInterfaceIdiomKey; NSString *const UIApplicationStateRestorationTimestampKey; NSString *const UIApplicationStateRestorationSystemVersionKey;Константы
-
UIStateRestorationViewControllerStoryboardKeyЗначение этого ключа является a
UIStoryboardобъект, представляющий раскадровку, из которой был первоначально получен контроллер представления. Вы не должны писать этот ключ в кодер сами. КаждыйUIViewControllerкласс автоматически пишет этот ключ в кодер во время процесса сохранения состояния.Доступный в iOS 6.0 и позже.
-
UIApplicationStateRestorationBundleVersionKeyЗначение этого ключа
NSStringобъект, идентифицирующий версию Вашего приложения (как получено изCFBundleVersionключ Вашего приложенияInfo.plistфайл), был, присутствовал, когда была сохранена информация состояния. Можно использовать значение этого ключа, чтобы помочь сделать выбор о том, как продолжить во время восстановления состояния. Например, если ключ указывает, что состояние связано с более старой версией Вашего приложения, Вы могли бы хотеть избежать восстановить предыдущее состояние в целом или изменять процесс восстановления более значительно.Доступный в iOS 6.0 и позже.
-
UIApplicationStateRestorationUserInterfaceIdiomKeyЗначение этого ключа
NSNumberобъект, содержащий одно из значений дляUIUserInterfaceIdiomперечисление. Это значение отражается, предназначался ли сохраненный интерфейс для iPad или идиомы iPhone.Доступный в iOS 6.0 и позже.
-
UIApplicationStateRestorationTimestampKeyЗначение этого ключа
NSDateобъект, содержащий дату, когда был сохранен архив восстановления. Дата указана с помощью всемирного координированного времени (UTC).Доступный в iOS 7.0 и позже.
-
UIApplicationStateRestorationSystemVersionKeyЗначение этого ключа
NSStringобъект, содержащий версию системы iOS, установленную, когда был сохранен архив. Формат этой строки соответствует формат значения вsystemVersionсвойствоUIDeviceкласс.Доступный в iOS 7.0 и позже.
-
