2012-03-02 42 views
1

我有一個有關UIScrollView內的UITableView的問題。UITableView在UIScrollView,多頁和一個表視圖

情況是這樣的:

我有一個ListViewController,顯示在一個UITableView幾個事件。如果用戶點擊某個事件,則此事件將顯示在某種DetailViewController中。目前沒有什麼大不了的。

問題是:客戶希望能夠左右滑動以查看上一個和下一個事件(在DetailViewController中)。這是我奮鬥的一點。

所以我做了一個包含UITableView的UIScrollview的DetailViewController。滾動工作,pagecounter工作,我的單元格中有硬編碼數據,迄今爲止非常好。

我的問題:來自每個事件的數據必須加載並顯示在此tableview中。 因此:如果用戶點擊Event1,則必須在tableview中顯示所有Event1數據。當用戶滑動左鍵時,來自Event2的數據應該是可見的(在同一個tableview中)。重複這幾個事件。

我該如何做到這一點?

我試過的cellForRowAtIndexPath是這樣的:

if (pageControl.currentPage == 0) { 
    cell.textLabel.text = @"Page 0"; //These will all be arrays in the future 
} 
else if (pageControl.currentPage == 1) { 
    cell.textLabel.text = @"Page 1"; 
} 
else if (pageControl.currentPage == 2) { 
    cell.textLabel.text = @"Page 2"; 
} 
else if (pageControl.currentPage == 3) { 
    cell.textLabel.text = @"Page 3"; 
}  
else if (pageControl.currentPage == 4) { 
    cell.textLabel.text = @"Page 4"; 
} 

return cell; 

但這行不通,那隻能說明我的頁面0中的每一個細胞。 奇怪的是,如果我把一個單元拉得太高或太低(所以它不再可見),單元顯示出正確的值。我製作了一個視頻,這很難解釋。視頻:http://cl.ly/EgfB

我試着調用reloadData,但那也不管用。

這甚至可能沒有創建每個事件的tableview?

順便說一句:我試過PanelTableView但我真的很難讓這個東西起作用,所以我寧願不這樣做。

回答

0

您可以嘗試在detailViewController中傳遞表數據源,並讓它知道要顯示的當前事件。一個自定義的init函數可以在detailViewController中執行

- (id) initWithEvent: (NSInteger) eventNum dataSource: (NSArray*) dSource 
{ 
    if(self = [super initWithNibName: @"detailViewController" bundle: nil]) 
    { 
     self.dataSource = dSource; 
     self.currentEvent = eventNum; 
    } 
    return self; 
} 

然後通過索引dataSource來選擇正確的事件。

相關問題