2011-08-13 58 views
1

我希望能夠顯示錶格的詳細視圖,但不能推動新的屏幕,但只顯示錶格的詳細視圖。只顯示在屏幕的表區域的細節視圖?

設置這個最好的方法是什麼..如果它實際上是可能的?

------------------------------------ 
|         | 
|   nav bar or tool bar | 
------------------------------------ 
|         | 
|  this area stays static | 
|         | 
------------------------------------    --------------------------------- 
|         |    |        | 
|         |    |        | 
|         |    |        | 
|   table…     |    | new uitableview pushed.  | 
|         | cell clicked-> | only the table area changes | 
|         |    |        | 
|         |    |        | 
|         |    |        | 
------------------------------------    --------------------------------- 
|  |  |  |  |  | 
|  |  |  |  |  | < tab bar 
|  |  |  |  |  | 
------------------------------------ 
+0

我會建議你創建兩個tableView一個比其他和顯示/隱藏基於單元格選擇。 –

+0

在那種情況下,我將如何處理tableview代表? – cannyboy

+0

創建一個委託和兩個不同的tableViewController類,並添加與tableViewController相關的表視圖並設置委託。 –

回答

0

只是在表視圖的頂部有另一個視圖,並使其隱藏。設置內容並在需要時取消隱藏。

1

如果你想要一個類似於推UIViewController的效果我猜你可以動畫化該tableview並且同時爲新視圖設置動畫位置。我不認爲有辦法使用實際的UINavigationController機制來實現它,因爲它會用新的viewcontroller視圖替換UINavigationController堆棧上的當前視圖。

1

我建議兩種方法:

  1. 插入uitableViewUIView,這樣你就永遠有參考其持有uitable視圖的容器。此外,您只需要管理此表格視圖的兒童subviews的框架尺寸。在你的情況下,它將是第一個uitableview和按鈕點擊下一個子視圖可以使用參考parent container添加。
  2. 或者,您可以擁有一個宏,其位置相對於父UIView爲uitableview's frame。在插入另一個子視圖時,您可以設置框架,給出覆蓋基礎uitableview以上的印象。
+0

我個人比較喜歡第一種方法,因爲它消除了定位新子視圖的麻煩,您只需將它們添加到位置(0,0)即可。 –

0

在我看來,解決這個問題的最好方法是使用UINavigationController,它沒有導航欄顯示,也沒有填充屏幕。因此,您的靜態區域只是簡單的UIView s,但您的表格視圖實際上在UINavigationController之內,但似乎是普通表格 - 導航欄已隱藏。

這意味着您需要將「動態」內容推送到UINavigationController,這將爲屏幕的該部分製作動畫,但屏幕的其餘部分將保持靜態。

+0

我覺得一個UINavigationController必須填滿整個屏幕 – cannyboy

+0

不,它沒有。它是一種常見的錯誤觀念。通常情況下,他們是 - 但他們不一定是。 –

相關問題