2016-03-05 43 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

謝謝,我在等待 –

相關問題