2017-04-16 120 views
0

我有一個TabBar應用程序,我試圖設置一個收藏夾選項卡。 我已經設法創建一個按鈕,並將收藏的單元格發送到選項卡,但現在如果我添加到收藏夾,它們會正確添加到收藏夾選項卡中,但是如果我退出應用程序,它不會保存收藏夾。我如何將收藏的單元格保存在收藏夾中? UserDefault會做最好的工作嗎?如果又如何能不能做到?如何在TableViewController中保存對象

這是我建立了我最喜歡的按鈕:

//create a new button 
     let Favoritebutton: UIButton = UIButton(type: UIButtonType.custom) 
     //set image for button 
     Favoritebutton.setImage(UIImage(named: "EmptyHeart.png"), for: .normal) 
     Favoritebutton.setImage(UIImage(named: "FilledHeart.png"), for: .selected) 
     //add function for button 
     Favoritebutton.addTarget(self, action: #selector(self.button), for: .touchUpInside) 
     //set frame 
     Favoritebutton.frame = CGRect(x:0,y: 0,width: 35,height: 35) 

     Favoritebutton.isSelected = UserDefaults.standard.bool(forKey: "isSaved") 

     let barButton = UIBarButtonItem(customView: Favoritebutton) 
     //assign button to navigationbar 

     self.navigationItem.rightBarButtonItem = barButton 

    } 


    @IBAction func button(sender: UIButton) { 
     let newValue = !sender.isSelected 
     sender.isSelected = newValue 
     UserDefaults.standard.set(newValue, forKey: "isSaved") 

     let tabItem = self.tabBarController?.tabBar.items![3] 
     sel_val = tabItem?.badgeValue 
     if(sel_val == nil){ 
      sel_val = "0" 
     } 
     let sel_num = Int(sel_val!) 

     let fav: NSMutableArray = [] 
     fav.add(barImage) 
     fav.add(barName) 
     fav.add(streetName) 
     if sender.isSelected { 
      tabItem!.badgeValue = String(format: "%d", sel_num! + 1) 
      favorite.add(fav) 
     } else { 
      tabItem!.badgeValue = String(format: "%d", sel_num! - 1) 
      favorite.remove(fav) 
     } 
    } 

回答

0

@Newbie - 我認爲你是不檢查,當應用程序打開的是第二次你的最喜歡的標籤與你的NSUserDefault。

+0

可能不是......我該怎麼做? –

+0

當你打開應用程序,你可以檢查是否有任何喜歡的項目被選中或沒有,如果選擇,你可以識別哪些選擇基於你可以顯示 –

+0

你可以幫助一段代碼? –