2012-01-08 37 views
0

我已經實施了MGSplitViewController其中我在masterviewcontroller 6行和每一個加載新的UIViewController到detailviewcontroller - 我按照使用多個細節視圖控制器蘋果示例項目。但是我有一些奇怪的問題。MGSplitViewController與多個詳細視圖控制器

首先,在初始負荷第一選定detailviewcontroller顯示完美。然而,當我在masterviewcontroller選擇不同的行改變被選擇的行詳細信息視圖控制器,但detailviewcontroller不會改變 - 這將繼續在這樣幾個點擊 - 然後一切工作正常。

好差不多了,現在當新detailviewcontroller實際負載有時意見成爲覆蓋。例如,如果我首先用tableview選擇一個detailviewcontroller,然後選擇一個只包含一些按鈕的按鈕 - 按鈕會出現在tableview上。如果有人能夠理解我做錯了什麼,請告訴我。這是我做過的selectrow方法。

- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    /* 
    Create and configure a new detail view controller appropriate for the selection. 
    */ 

    switch (indexPath.row) { 
     case 1: 
     { 
      self.splitViewController.detailViewController = self.postViewController; 
//   popover = [[UIPopoverController alloc] initWithContentViewController:self.postViewController]; 
//   [popover presentPopoverFromRect:CGRectMake(200, 0, 100, 100) 
//          inView:self.splitViewController.view 
//     permittedArrowDirections:UIPopoverArrowDirectionAny 
//         animated:YES]; 
      break; 
     } 
     case 2: 
      self.splitViewController.detailViewController = self.latestViewController; 
      break; 
     case 3: 
      self.splitViewController.detailViewController = self.categoriesViewController; 
      break; 
     case 4: 
      self.splitViewController.detailViewController = self.messagesViewController; 
      break; 
     case 5: 
      self.splitViewController.detailViewController = self.searchViewController; 
      break; 
     case 6: 
      self.splitViewController.detailViewController = self.accountViewController; 
      break; 
     default: 
      break; 
    } 
} 
+0

我想你並沒有在你的應用中使用ARC。你不想在分配一個新視圖之前從超級視圖中刪除以前的detailViewController嗎?所有detailViewControllers的屬性是什麼? – 2012-01-08 20:34:16

+0

對不起,我正在使用ARC。我將如何刪除它們?我試圖設置它們爲零,但得到一個編譯器錯誤。所有的detailViewControllers都是UINavigationControllers(非原子,強大)。 – xizor 2012-01-10 14:58:04

+1

不,與ARC你不需要將他們釋放,但分配新的DetailView之前,你可以嘗試像'如果(self.splitViewController.detailViewController)self.splitViewController.detailViewController.view removeFromSuperview]' – 2012-01-10 15:26:57

回答

2

MGSplitViewController似乎存在一個錯誤,它不會刪除以前的detailViewController視圖。要解決這個問題,請在switch語句上方添加以下行:

[self.splitViewController.detailViewController.view removeFromSuperview] 
相關問題