我的问题是,当在ViewController中选择单元时,如何更新或重新加载UITableView。我有带有两个按钮的ViewController,当您单击其中一个按钮时,您将转到tableViewController,当您选择一个选项时,该选项将由
NSUserDefaults.standardUserDefaults()
而tableViewController将被
Self.dismissViewControllerAnimated(真,完成:零)
。我用过
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let cell = self.tableView.cellForRowAtIndexPath(indexPath)
let lang_name = cell!.textLabel!.text!
NSUserDefaults.standardUserDefaults().setObject(lang_name,forKey:"lang_saved")
NSUserDefaults.standardUserDefaults().synchronize()
self.dismissViewControllerAnimated(true, completion: nil)
}和
super.viewDidLoad()
if let lang_saved = NSUserDefaults.standardUserDefaults().objectForKey("lang_saved") {
button1.setTitle("\(lang_saved)", forState: .Normal)
}我的问题是我必须重新启动我的应用程序才能得到正确的结果,我的意思是必须重新加载视图控制器才能从
NSUserDefaults.standardUserDefaults()
我该怎么解决呢?
发布于 2016-03-05 16:14:09
检查此链接:Link
您应该将重新加载的代码放入:
// Define Delegate Method
func childViewControllerResponse(parameter)
{
.... // self.parameter = parameter
}或
也许打电话
if let lang_saved = NSUserDefaults.standardUserDefaults().objectForKey("lang_saved") {
button1.setTitle("\(lang_saved)", forState: .Normal)
}在viewWillAppear中
发布于 2016-03-05 16:10:28
要重新发布按钮,当您想要更新按钮时,必须再次调用此代码(可能是单击按钮,也可以是viewWillAppear函数)
if let lang_saved = NSUserDefaults.standardUserDefaults().objectForKey("lang_saved") {
button1.setTitle("\(lang_saved)", forState: .Normal)
}代码的问题是只在viewDidLoad上调用,而这个只在加载视图时执行。
https://stackoverflow.com/questions/35816053
复制相似问题