2014-01-10 32 views
0

我有兩個UITableViewController的「花朵」和「樹木」。如果您選擇特定的花或樹,則會顯示一些詳細信息。所以這就是大家都知道的標準行爲。我想要實現的是:UINavigationController中的UISegmentedControl

這些UITableViewControllers應該由一個UINavigationController管理,用戶應該可以通過放置在UINavigationController的Header中的UISegmentedControll來選擇它們。所以用戶可以通過與UISegmentedControl交互來在UITableViewControllers之間切換。如果用戶選擇一個特定的花或樹,則應該顯示詳細信息,並且應該用後退按鈕替換UISegementedControl。

這是可能的,我該如何做到這一點?如果它不是清楚,我可以嘗試畫一些圖片:-)

謝謝 基督教

回答

1

這不是導航控制器是怎麼工作的。導航控制器管理一堆視圖控制器。在導航欄中有一個分段的控制器,並讓它在子視圖控制器之間切換 - 如果可以使其工作 - 違背了Apple的人機界面指南。如果你真的做到了,Apple可能會拒絕你的應用。

你所描述的更像是一個標籤欄控制器。我爲一個客戶端開發了一個應用程序原型,它使用了一個父視圖控制器,它是一個標籤欄控制器上的一個變體,它在底部有一個分段控件,可以完成您所描述的任務。

您可以構建自己的自定義父視圖控制器,它可以完成您所描述的操作,但您應該NOT嘗試使其在導航控制器中將視圖控制器堆疊在一起。

+0

謝謝你的建議。我會試試這種方式。 – ChristianR

0

這是可行的,儘管是否可行。導航控制器中的VC不是對等的,其中一個必須是根,其他的必須被推入並彈出。所以,你可以這樣做:

  • VC1是根,並設置分段控制,使得本身的valueChanged的 目標
  • 如果分段控制的值更改爲其他段,推VC2(用SEGUE如果你想,在IB中設置)。
  • VC1仍然在堆棧上,並且仍然會收到來自控件的valueChanged通知。
  • 當值更改爲原始段時,讓導航控制器彈出爲root。

您可能想隱藏VC2上的後退按鈕。

關於可取性:我想有一個很好的理由來做這個而不是標準模式。轉換過程中的幻燈片動畫是?這可以在沒有導航vc的情況下創建。是否讓每個細分受衆羣都呈現視圖控制器而不是視圖?一個案例可以使nav vc是一個很好的,已經建好的容器vc,使用它會爲你節省一些麻煩。這很可能不會讓你的應用被Apple,IMO拒絕。

相關問題