2010-01-02 39 views
1

我有一個關於UITableViews的一般性問題。一般UITableView問題(切換TableView的內容...)

這是我的情況。

我有一個按鈕和一個UITableView的按鈕,通過按下一個按鈕,UITableView的內容應該改變。我使用自定義表格單元格(每個單獨表格中的單元格相同),但是使用不同的內容。

我不確定在我的視圖中定義3個UITableView實例並在點擊按鈕時在這些實例之間切換是一種好的做法。

我也不知道當按下其中一個按鈕時,我的程序應該做什麼(摧毀舊視圖?如何設置新視圖?將新視圖疊加在舊視圖上?然後如何獲取舊視圖一個後面一次按下另一個按鈕)...

正如你所看到的,很多相當一般的問題..也許我正在尋找錯誤的方式,但我無法找到一個網絡上的文章,將提供給我必要的信息。

謝謝你的回覆! 迎接

SAM

回答

0

我真的取決於雙方你怎麼tableviews之間的轉換,和他們的風格。如果您在切換表格時沒有任何類型的動畫,並且它們大小相同,那麼我建議使用單個視圖,並在您的委託/數據源方法中執行必須做的操作。如果你顯示'表1',返回一組數據,'表2',另一個。

但是,如果表格是不同的樣式(分組與平原),則需要有不同的視圖。另外,如果您在製作另一張桌子時製作了一張桌子,則需要多個視圖。只需在IB中佈置三張表格,但將其中的兩個設置爲「隱藏」。當需要切換時,隱藏當前可見的表格並顯示新的表格。或者,你可以使用+ [UIView beginAnimation:context:]淡出舊的和新的。

+0

非常感謝您的幫助。正如你所建議的那樣,我正在實現severall TableViews/Controllers並隱藏/顯示它們。唯一讓我擔心的事情是,我可能需要大約8個桌面。也許bentford的做法是單純交換數據源,這將是一個更有效的方法..另一方面,我可能需要在未來的某個時候添加一些表格細節...無論如何,非常感謝你,並且已經美好的一天! – samsam

0

首先,你可以做到這一點無論如何,你可能不會注意到一點區別,除非你的桌面瀏覽器每行有1000多行。

iPhone運行速度比您可能意識到的要快。這就是說,內存是你最寶貴的資源,在某些情況下,使用太多會導致你的應用程序關閉。

我的建議是使用一個tableview,只是換出數據源。

+0

感謝您的幫助,我目前用ben gottlieb向我解釋過的方式解決了我的問題。但是我也試圖實現你的解決方案。 我遇到過這個問題,我的TableView沒有得到像這樣的數據源切換後的「新數據」: [tableViewInstance setDataSource:nextController]; [tableViewInstance setDelegate:nextController]; [tableViewInstance reloadData]; 我確定我錯過了一些東西,無法弄清楚它現在是什麼。 再次感謝您的親切幫助 sam – samsam