2016-03-05 61 views
0

我的问题是如何在UITableView中选择单元格时更新或重新加载ViewController。 我视图控制器有两个按钮,当你点击其中一个,你会去tableViewController,当你选择一个选项,该选项将被当在UITableView中选择单元格时更新/重新加载ViewController(swift2)

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()

我该如何解决这个问题?

回答

0

检查此链接:Link

你应该把你重装代码:

// Define Delegate Method 
func childViewControllerResponse(parameter) 
{ 
    .... // self.parameter = parameter 
} 

OR

也许拨打

if let lang_saved = NSUserDefaults.standardUserDefaults().objectForKey("lang_saved") { 

     button1.setTitle("\(lang_saved)", forState: .Normal) 
    } 

viewWillAppear

+0

它对我来说很有用。谢谢 –

0

要刷新你按钮,你必须再次调用此代码,当你要更新的按钮(也可能是在点击,或在viewWillAppear功能)

 if let lang_saved = NSUserDefaults.standardUserDefaults().objectForKey("lang_saved") { 
      button1.setTitle("\(lang_saved)", forState: .Normal) 
     } 

与您的代码的问题是你只需拨打viewDidLoad,这只会在您的视图加载时执行。

+0

谢谢,但我不想重新加载表视图,我想重新加载视图控制器,我来自哪个按钮,我想更新 –

+0

哇,在这种情况下,只需再次从NSUserDefault调用查询。我会重写答案。 – UlyssesR

+0

谢谢,我在等待 –

相关问题