我有一个ViewController
,其主页上有一个滑出的汉堡菜单。菜单上有一个名为“激励”的选项,单击该选项会弹出一个Alert
,提示用户将项目添加为其默认值。当您单击指定的ViewController
时,这些默认值将在UIPickerView
的主页上可用。
一切似乎都可以正常工作,除了添加该项目后,它不会与数组中已有的其他项目一起出现在UIPickerView
中。
这是初始化默认值的方式。
let defaults = UserDefaults.standard
这是viewDidLoad()
needIndicatorArray = defaults.object(forKey: "needs") as? [String] ?? [String]()
这是在程序主体中按下按钮时调用的代码。
@IBAction func addIncentiveButtonPressed(_ sender: UIButton) {
var textField = UITextField()
let alert = UIAlertController(title: "Add Need Indicator", message: "", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Add item", style: .default, handler: { (action) in
self.needIndicatorArray.append(textField.text!)
self.defaults.set(self.needIndicatorArray, forKey: "needs")
}))
alert.addAction(UIAlertAction(title: "Dismiss", style: .default, handler: { (action) in
alert.dismiss(animated: true, completion: nil)
}))
alert.addTextField { (alertTextField) in
alertTextField.placeholder = "Create new item"
textField = alertTextField
}
present(alert, animated: true, completion: nil)
}
I am expecting the items added by the ```Alerts``` in the hamburger menu to be available when the array loads.