2016-11-16 52 views
0

我一直在試圖找出如何保存和恢復,然後在我的應用程序標籤的可見性狀態,但不能爲我的生活,看着辦吧。如何恢復標籤知名度的狀態迅速3

我已經得到恢復的ID爲組通過檢查「使用故事板ID」在界面生成器視圖控制器(和有提供使用故事板ID)。我已將shouldSaveApplicationStateshouldRestoreApplicationState函數添加到我的AppDelegate文件以返回true。

在那裏我被陷是視圖控制器的快捷文件。我不知道如何使用override func encodeRestorableState(with coder: NSCoder)來編碼可見性狀態,然後如何使用override func decodeRestorableState(with coder: NSCoder)將其解碼回來。

我有3級的標籤,開始被隱藏(viewDidLoad中他們都設置爲是否隱藏= TRUE)。然後,根據點擊哪個按鈕,我設置適當的標籤以顯示(例如,isHidden = false)。當用戶退出應用程序時,我希望被更改的標籤在返回到應用程序時被恢復。

我已經找到了不同類型的對象下面的代碼:

override func decodeRestorableStateWithCoder(coder: NSCoder) { 

    // retrieve profile ID so that we can fetch entire profile 
    profileID = Int(coder.decodeIntegerForKey(「profileID")) 

    //image data 
    if let imageData = coder.decodeObjectForKey("image") as? NSData { 
     profileImageView.image = UIImage(data: imageData) 
    } 
    // name 
    if let name = coder.decodeObjectForKey("name") as? String { 
     nameTextField.text = name 
    } 

    super.decodeRestorableStateWithCoder(coder) 
} 

但我無法弄清楚如何翻譯這些對象類型與visibility屬性的工作?

請幫忙,這讓我瘋狂!看起來像這麼簡單的事情......謝謝!

回答

0

像這樣的東西應該做的伎倆:

override func encodeRestorableState(with coder: NSCoder) { 
    coder.encode(button1.isHidden, forKey: "button1") 
    coder.encode(button2.isHidden, forKey: "button2") 
    coder.encode(button3.isHidden, forKey: "button3") 
    super.encodeRestorableState(with: coder) 
} 

override func decodeRestorableState(with coder: NSCoder) { 
    button1.isHidden = coder.decodeBool(forKey: "button1") 
    button2.isHidden = coder.decodeBool(forKey: "button2") 
    button3.isHidden = coder.decodeBool(forKey: "button3") 
    super.decodeRestorableState(with: coder) 
}