2011-09-25 69 views
0

我有一個UITableViewController包含兩個UITableViews appsTableView和gameTableView,首先我設置:開關多UITableViews在一個UITableViewController

self.tableView = appsTableView; 
    [self.view addSubview:self.tableView]; 

然後當我點擊切換頁面按鈕進行頁面切換:

-(void) switchPage:(id) sender{ 


    switch([sender selectedSegmentIndex]){ 
     case 0: 

      gameTableView = self.tableView; 
      self.tableView = appsTableView; // crash here 

      [self.view addSubview:self.tableView]; 
      break; 
     case 1: 

      appsTableView = self.tableView; 
      [self.tableView removeAllSubviews]; 
      self.tableView.removeFromSuperview; 

      self.tableView = gameTableView; //crash here 
      [self.view addSubview:self.tableView]; 

      break; 
     default: sql = nil; 
    } 

} 

appsTableView和gameTableView都已初始化。 我該如何做開關?

回答

0

如何創建兩個表視圖?我會建議爲它們創建實例變量,並在必要時保留它們。

self.gameTableView = ... // gameTableView is a retain property 
self.appsTableView = ... // appsTableView is a retain property 

然後交換機:

self.tableView = gameTableView; 

我不認爲你需要刪除的自超級視圖的原始表視圖。語法應該爲你做。雖然我對此不是100%肯定,但我會試驗並回復你。

編輯:你應該是安全的直接任務(不需要從超級視圖中刪除)。

+0

謝謝奧斯卡,我努力工作!但新問題是:現在視圖切換良好,例如,我點擊按鈕從appsTableView切換到gameTalbeView,他們都可以滾動,但當我切換回appsTableView並嘗試滾動,崩潰... –

+0

什麼錯誤你得到了嗎?這聽起來像是一些東西沒有保留下來,也不再存在。 –