在iOS开发中,可以使用以下方法保存UIViewController的状态:
// 保存状态
let defaults = UserDefaults.standard
defaults.set(value, forKey: "key")
// 恢复状态
let savedValue = defaults.object(forKey: "key")
// 保存状态
let fileURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.appendingPathComponent("data.archive")
NSKeyedArchiver.archiveRootObject(value, toFile: fileURL.path)
// 恢复状态
let savedValue = NSKeyedUnarchiver.unarchiveObject(withFile: fileURL.path)
class CustomObject: NSObject, NSCoding {
var property: String
init(property: String) {
self.property = property
}
func encode(with coder: NSCoder) {
coder.encode(property, forKey: "property")
}
required init?(coder: NSCoder) {
self.property = coder.decodeObject(forKey: "property") as? String ?? ""
}
}
// 保存状态
let fileURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.appendingPathComponent("data.archive")
NSKeyedArchiver.archiveRootObject(customObject, toFile: fileURL.path)
// 恢复状态
let savedObject = NSKeyedUnarchiver.unarchiveObject(withFile: fileURL.path) as? CustomObject
这些方法可以根据需要保存UIViewController的状态,并在需要时恢复状态。注意,这些方法适用于保存基本类型的状态,以及实现了NSCoding协议的自定义对象的状态。