2014-09-01 78 views
1

對不起我的英語NavigationController不會重新加載tableView數據popToRootViewController

在我的應用程序,我有一個登錄表單。如果用戶名和密碼都不錯, 的用戶名被存儲在鑰匙串,它使用可以追溯到主要的viewController:self.navigationController.popToRootViewControllerAnimated(true)

的數據是由使用的用戶名,從該用戶名

獲取數據的PHP文件加載

而在主viewController它們是一個tableView包含數據

但問題是,連接後,tableView不會改變。

@IBOutlet var tblTask: UITableView! 

let bodyData = "username=" + username! 

     let URL: NSURL = NSURL(string: "link to php file") 
     let request:NSMutableURLRequest = NSMutableURLRequest(URL:URL) 
     request.HTTPMethod = "POST" 
     request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding); 
     NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) 
     { 
      (response, data, error) in 
      var output = NSString(data: data, encoding: NSUTF8StringEncoding) 

      var array = self.JSONParseArray(output) 

      for var i = 0, a = 1 ; i < array.count ; i += 2, a += 2 { 

       if(a > 0 && i > 0) 
       { 
        self.arrayDate.append(array[i]) 
        self.arrayPoid.append(array[a]) 
       } 
      } 
      for var i = 0; i < self.arrayDate.count ; i++ { 
       self.arrayPoid[i] += " livres" 
      } 


      self.tblTask.reloadData() 
     } 
+0

你使用的UITableViewController?你是否正確綁定了'tableView'插座? – tia 2014-09-01 14:48:26

+0

代碼中缺少一些東西。你什麼時候在你的(表格)ViewController中執行'NSURLConnection.sendAsynchronousRequest ...?在哪個方法? – 2014-09-01 15:49:51

+0

在viewDidLoad中 – 2014-09-01 16:05:32

回答

0

嘗試在UITableViewControllerviewWillAppear方法調用self.tableView.reloadData():它只有當我重新啓動應用程序

我的代碼來獲取數據的變化。這是否解決了它?

+0

不,它不工作我已經試過 – 2014-09-01 14:41:15

+0

@ClémentBisaillon你可能會發布一些代碼? – 2014-09-01 15:12:03

+0

我已經編輯我的職務 – 2014-09-01 15:25:11

1

我認爲開卷塞格斯是你所需要的。您只需幾步即可設置它們。在RootViewController的添加這個方法:

@IBAction func reset(segue: UIStoryboardSegue) { 
    tableView.reloadData() 
} 

在界面生成器,在需要回去RootViewController的任何的viewController創建UIButtons。然後用戶可以鏈接這些UIButtons的各自的viewController的紅色「退出」按鈕,並選擇重置:在出現(見下面的圖片),在彈出的菜單中。

enter image description here

enter image description here

當你點擊這些按鈕,你將被帶回你的rooViewController和reset:將被執行(與您的tableView重新加載)。

見WWDC 2012會話視頻「採用在App故事板」有關開卷塞格斯更多細節[在38分鐘開始。

+0

隨着那我還需要navigationController.popToRootView?因爲它給了我一個錯誤 – 2014-09-01 14:57:50

+0

不,我相信你不需要'navigationController.popToRootView'了。讓我知道。 – 2014-09-01 14:59:37

+0

不,你不需要它,但它仍然不會重新加載數據,但我知道這是調用函數,因爲我在其中添加了println – 2014-09-01 15:01:57