Индексный путь сохранения меню UserDefaults swift - PullRequest
1 голос
/ 22 апреля 2019

Я хочу сохранить любой путь индекса, который я последний раз щелкнул в меню.Прямо сейчас он записывает указательный путь.Но если я выберу indexpath, он записывает это.Если я не выберу, это не так.Как сохранить предыдущую запись, даже если я не выбрал пункт в меню?

let save11 = UserDefaults.standard.integer(forKey: "indexPath")

        let yenindex = save11        
        self.menuView.setSelected(index: yenindex)    
        let userDefaults = UserDefaults.standard
        userDefaults.removeObject(forKey: "indexPath")

  menuView.didSelectItemAtIndexHandler = {(indexPath: Int) -> Void in   
                var placesdeger: String = ""

      UserDefaults.standard.setValue(indexPath, forKey: "indexPath")

                if indexPath == 0 {
                    let userDefaults = UserDefaults.standard
                    userDefaults.removeObject(forKey: "indexPath")                    
   UserDefaults.standard.setValue(indexPath, forKey: "indexPath")
                    placesdeger = "Yatak Odası"

            }
                if indexPath == 1 {
                    let userDefaults = UserDefaults.standard
                    userDefaults.removeObject(forKey: "indexPath")

          UserDefaults.standard.setValue(indexPath, forKey: "indexPath")
                    placesdeger = "Oturma Odası"
                    self.refreshData()

                }

1 Ответ

0 голосов
/ 22 апреля 2019

когда вы нажимаете на меню, удаляете предыдущее значение Userdefault и каждый раз устанавливаете новое значение по умолчанию для пользователя. Поместите этот код и получите новый индекс каждый раз, и если он не выбран, то старое значение вы получите в Userdefaults

       let userDefaults = UserDefaults.standard
       userDefaults.removeObject(forKey: "index")
       userDefaults.set(i, forKey: "index")

EDIT1 ИСПОЛЬЗУЙТЕ ЭТО В НЕКОТОРЫХ, КОТОРЫЕ ВЫ ОПРЕДЕЛЯЕТЕ ПОСТОЯННО ТОЛЬКО ОДИН РАЗ

let userDefaults = UserDefaults.standard

Если вы используете или любой другой метод, который я не знаю, но если вы получите правильный indexpath, тогда этот код будет работать

menuView.didSelectItemAtIndexHandler = {(indexPath: Int) -> Void in   
                var placesdeger: String = ""
 userDefaults.removeObject(forKey: "indexPath")

                if indexPath == 0 {
                    let userDefaults = UserDefaults.standard

   UserDefaults.standard.setValue(indexPath, forKey: "indexPath")
                    placesdeger = "Yatak Odası"

            }
                if indexPath == 1 {



          UserDefaults.standard.setValue(indexPath, forKey: "indexPath")
                    placesdeger = "Oturma Odası"
                    self.refreshData()

                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...