2012-03-02 11 views
1

UIScrollView内のUITableViewに関する質問があります。UIScrollviewのUITableView、複数のページと1つのテーブルビュー

これは状況です:

私はのUITableViewで、いくつかのイベントを示しListViewControllerを持っています。ユーザーがイベントをタップすると、このイベントは何らかの種類のDetailViewControllerに表示されます。これまでのところ大したことはありません。

問題点は、クライアントが左右にスワイプして前後のイベントを見ることができるようにしたいことです(DetailViewController内)。そして、これは私が少し苦労するところです。

私はUITableViewを含むUIScrollviewでDetailViewControllerを作成しました。スクロール・ワーク、ページ・カウンター・ワーク、ハード・コードされたデータが私のセルにあります。

問題:すべてのイベントのデータをロードし、このテーブルビューに表示する必要があります。 したがって、ユーザーがEvent1をタップすると、すべてのEvent1データをtableviewに表示する必要があります。ユーザーが左にスワイプすると、Event2からのデータが(同じテーブルビュー内に)表示されるはずです。いくつかのイベントに対してこれを繰り返します。

どうすればこの問題を解決できますか?

私は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を呼び出そうとしましたが、どちらも動作しませんでした。

イベントごとにテーブルビューを作成しなくてもこれは可能ですか?

ところで:私はPanelTableViewを試しましたが、実際には動作させるのに苦労していました。

答えて

0

detailViewControllerにテーブルデータソースを渡して、表示する現在のイベントを知ることができます。カスタム初期化関数をdetailViewControllerに実装することができます。

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

次に、dataSourceのインデックスを作成して正しいイベントを取得します。

関連する問題