![](/img/trans.png)
[英]Subviews position get changed on navigation to different view and coming back
[英]iPad Navigation between different subviews
我是一位經驗豐富的程序員,但對iOS / ObjC來說還很陌生。 我需要在現有的iPad應用程序中添加功能,但不確定如何操作。
該應用程序具有一個帶有幾個子組件的視圖(我們稱為InfoView),其中一個子組件是一個表格視圖(TableView),其中兩個是按鈕(ButtonA和ButtonB)(以及與此問題無關的其他東西)。
按下ButtonB時,需要將TableView替換為其他視圖(將其稱為DetailViewA),並將其放在各種項目上。 (ButtonA將我們帶回到TableView-這些按鈕的作用類似於偽選項卡按鈕)選擇DetailViewA中的一項時,需要用DetailViewB替換DetailViewA。 當DetailViewB關閉時,detailViewA應該重新出現。
我相信我可以通過在按下ButtonA / ButtonB時簡單地隱藏適當的按鈕來在TableView和DetailViewA之間進行切換,但是我不知道如何很好地處理到DetailViewB中並再次備份(最好使用一些滑動動畫) -我以為也許可以用UINavigationController做到這一點,但是經過一些研究,我仍然看不到如何將UINavigationController嵌入子視圖中。
圖片說出一千個單詞,所以這是我在說的粗略草圖:
+--------------------------------------------------------------------------+
| InfoView | TopView |
| [ButtonA] [ButtonB] | |
| (show table) (show detail) | |
| ---------------------------------- | |
| | |
| this area contains TableView | |
| | |
| when ButtonB is touched this | other stuff here |
| needs to display DetailViewA | |
| with the ability to drill down | |
| deeper to DetailViewB (and | |
| maybe deeper) | |
或分層:([]表示不確定性/未實現)
TopView
\ InfoView
\ ButtonA
| ButtonB
| TableView - Shown when ButtonA pressed
| [ MoreInfoView? ] - Shown when ButtonB pressed
\ [ DetailViewA ]
| [ DetailViewB ]
實施此功能的最佳方法是什么?
您可以使用子視圖控制器將導航控制器嵌入視圖中 。 設置導航控制器,並將DetailViewA的控制器作為根視圖控制器,然后調用以下代碼嵌入導航控制器:
[self addChildViewController:self.detailNavigationController];
self.detailNavigationController.view.frame = frameOfTableView;
[self.view addSubview:self.detailNavigationController.view];
[self.detailNavigationController didMoveToParentViewController:self];
當按下按鈕時,您將隱藏原始表格視圖並顯示導航控制器。 然后,導航控制器將處理詳細視圖之間的“向下鑽取”。
請注意,您將需要DetailViewA和DetailViewB的視圖控制器 ,而不僅僅是視圖。
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.