在 UITableView (swift2) 中选择单元格时更新/重新加载 ViewController
Posted
技术标签:
【中文标题】在 UITableView (swift2) 中选择单元格时更新/重新加载 ViewController【英文标题】:Update/Reload ViewController when cell selected in UITableView (swift2) 【发布时间】:2016-03-05 15:40:23 【问题描述】:我的问题是如何在 UITableView 中选择单元格时更新或重新加载 ViewController。 我有带有两个按钮的 ViewController,当您单击其中一个按钮时,您将转到 tableViewController,当您选择一个选项时,该选项将由
保存NSUserDefaults.standardUserDefaults()
tableViewController 会被
解散self.dismissViewControllerAnimated(true, completion: nil)
。 我用过
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()
我该如何解决?
【问题讨论】:
【参考方案1】:查看此链接: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
【讨论】:
【参考方案2】:要重新加载你的按钮,你必须再次调用这个代码,当你想更新按钮时(它可能在点击,或者在viewWillAppear
函数中)
if let lang_saved = NSUserDefaults.standardUserDefaults().objectForKey("lang_saved")
button1.setTitle("\(lang_saved)", forState: .Normal)
您的代码的问题是您仅在 viewDidLoad
上调用,并且仅在您的视图加载时执行。
【讨论】:
谢谢,但我不想重新加载表格视图,我想重新加载我来自的视图控制器,其中有我想要更新的按钮 哇,在这种情况下,只需再次从 NSUserDefault 调用查询。我会重写答案。以上是关于在 UITableView (swift2) 中选择单元格时更新/重新加载 ViewController的主要内容,如果未能解决你的问题,请参考以下文章
iCloud 同步后 UITableView 不会重新加载(Swift 2)
在 Swift 2.0 中使用 NSFetchedResultsController