保存用户默认设置时,更改应用程序图标不起作用

时间:2019-05-07 08:12:53

标签: ios swift nsuserdefaults userdefaults

在我的应用程序的辅助视图控制器中,我有一个要更改的图标表,例如Reddit应用程序Apollo

在主视图控制器中,我使用用户默认设置来保存两个标签文本和视图背景颜色。完全没有任何用户默认保存,点击表行之一时,我可以使用以下几行自由更改应用程序图标:

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

用于保存用户默认值:在屏幕上按下按钮时,它会从数组中随机选择一个字符串并设置两个label.text之一,然后随机选择一个UIColor并设置视图。背景颜色。然后,使用“ saveLastQuote()”功能保存这些内容,然后在viewDidLoad()中调用“ checkForLastQuote()”功能以从用户默认值中获取:

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中保存了用户默认代码时,当我点击一行以更改另一个屏幕上的图标时,会显示此对话框(下面的屏幕截图)< / em>告诉我它已更改,但是当我关闭应用程序并重新打开时,它始终停留在其原始应用程序图标上(屏幕截图中金色的黑白版本)

Dialog box screenshot

编辑:当我在设备上构建并运行该应用程序(在该位置对该应用程序进行所有测试时),该应用程序的图标会更改为我在表格中单击的新图标视图,然后继续不变,直到我再次构建并运行。

由于我使用用户默认值来添加其他项目,我是否需要保存我现在要更改的图标?还是可以抓住通常由用户默认设置自己保存的更改图标并进行设置?我不知道为什么会出现这种行为。对此很困惑。

0 个答案:

没有答案