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: String
Objective 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 и позже.
-