2016-08-03 40 views
1

(我已閱讀關於這一主題的其他問題和答案,但大多數都是很舊,不涉及到iOS 9或10)的iOS的UINavigationController類似的行爲(2016)

的應用設計要求顯示屏的上半部分始終包含相同的內容。 (正在由用戶編輯的圖像)

顯示屏的下半部分需要UITableView。當點擊一個UITableViewCell時,底部部分需要轉換到帶有滑動動畫的新的UIViewController,類似於UINavigationController推動遊戲的工作方式。

問題:只有底部視圖需要轉換到新的視圖控制器,然後再回來。視圖層次結構的上半部分需要保持不受影響。出於這個原因,我不能將所有內容放在UINavigationController之內,我不能在屏幕頂部有UINavigationBar

問題:我應該採取什麼辦法在這種情況下,在這裏我只需要一個UIView層次的推SEGUE方式轉型,而不是別的?謝謝。

編輯與解決方案

解決方案如下,供那些一起在家裏以下。

Storyboard layout

Result

Push Segue

+0

你試圖做這一切的故事板來跟蹤變化呢?如果用代碼編寫,這會更簡單。你可以從左右或左右對視圖的框架進行動畫製作 –

回答

2

是的,你可以在下半部分使用UINavigationController。

如果你使用故事板,要做到這一點最簡單的方法是使用一個容器視圖對於屏幕的每個部分,你則可以嵌入在頂部部分UIViewController,並在底部的UINavigationController部分。如果你正在以編程的方式進行此操作,只需將視圖控制器作爲子視圖控制器添加到應用程序的初始視圖控制器(有關詳細信息,請參閱this answer),這實際上是故事板在使用容器視圖時自動爲您執行的操作。

作爲一個子視圖控制器,UINavigationController將獨立於頂層的UIViewController進行操作,並且應該像預期的那樣工作。

我推薦的程序化的方法有以下原因:

  • 它可以幫助您瞭解父/子視圖控制器好得多,這將有可能節省您的調試時間上下行的顯著量的內部運作。
  • 它使添加/刪除/交換子視圖控制器像幾行代碼一樣簡單。試圖與故事板做到這一點是臭名昭着的和繁瑣的。
  • 它更容易使用GIT(大多數中型/大型公司實際上禁止出於這個原因故事板)
+1

非常感謝你,也感謝其他受訪者!遵循你的建議,我設法通過使用兩個容器視圖,在第二個容器中嵌入一個UINavigationController來嵌入我需要的UI。大聲歡呼! – Womble

+0

我還會探討一下關於使用代碼更多的建議,而不是使用Storyboard。乾杯。 – Womble

1

您可以在一個視圖控制器中使用多個視圖,並可以爲push或pop等動畫顯示或隱藏它。

第二種方法是你可以使用Container View這將給導航堆棧的確切效果。

相關問題