Изменение значка приложения не работает при сохранении пользовательских настроек по умолчанию - PullRequest
1 голос
/ 07 мая 2019

В дополнительном контроллере представления в моем приложении у меня есть таблица значков для изменения, например, приложение Reddit Apollo .

В моем главном контроллере вида я использую пользовательские настройки по умолчанию, чтобы сохранить текст двух меток и цвет фона представления.Без какого-либо сохранения пользовательских настроек по умолчанию, при нажатии на одну из строк таблицы я могу свободно изменять значок приложения с помощью следующих строк:

let appIconService = AppIconService()
appIconService.changeAppIcon(to: .goldAppIcon)

Для сохранения значений по умолчанию для пользователя :Когда кнопка нажата на экране, она случайным образом выбирает строку из массива и устанавливает один из двух label.text, затем случайным образом выбирает UIColor и устанавливает view.backgroundcolor.Затем я сохраняю их с помощью функции «saveLastQuote ()», а затем вызываю функцию «checkForLastQuote ()» в viewDidLoad () для получения значений по умолчанию пользователя:

let defaults = UserDefaults.standard

func saveLastQuote() {
    defaults.set(randomText.text!, forKey: Keys.savedQuote)
    defaults.set(nameText.text!, forKey: Keys.savedName)
    defaults.set(self.view.backgroundColor, forKey: Keys.savedBackgroundColor)
}

func checkForLastQuote() {
    let lastQuote = defaults.value(forKey: Keys.savedQuote) as? String ?? "\"Quote\""
    let lastName = defaults.value(forKey: Keys.savedName) as? String ?? ""
    let lastBackgroundColor = defaults.color(forKey: Keys.savedBackgroundColor)

    randomText.text = lastQuote
    nameText.text = lastName
    self.view.backgroundColor = lastBackgroundColor ?? Colors.black
}

По какой-то причине, когда у меня есть сохранениекод пользователя по умолчанию в главном ViewController.swift, когда я нажимаю на строку, чтобы изменить значок на другом экране, я получаю это диалоговое окно (скриншот ниже) , указывающее мне, что оно изменилось, нокогда я закрываю приложение и открываю его снова, оно всегда остается со своим исходным значком приложения (черно-белая версия золотого на скриншоте)

Dialog box screenshot

РЕДАКТИРОВАТЬ : Когда я собираю и запускаю приложение на своем устройстве (именно там я и делаю все тесты для приложения), значок приложения ИЗМЕНЯЕТСЯ на новый, который я щелкнул в представлении таблицы, а затем не меняется до тех пор, пока я не соберуи запустите снова.

Нужно ли сохранять иконку, которую я меняю сейчас, так как я использую настройки по умолчанию для добавления других элементов?Или, возможно, получить измененный значок, который он обычно сохраняет сам по себе от пользовательских настроек по умолчанию, и установить его?Я не знаю, почему у меня такое поведение.Довольно запутался по этому поводу.

...