2013-06-05 86 views
0

我想補充一個觀點:如何添加UIView作爲最頂層視圖的子視圖而不知道它是哪個視圖?

[aView addSubview:myNewView]; 

我所試圖做的是找到什麼的觀點是在任何特定時刻所顯示的最上面的觀點,這樣我就可以動態地添加在它上面的景色。例如,假設我的看法堆棧看起來是這樣的:

  1. 莫代爾相機視圖(在一切之上,當前顯示的)
  2. TabView的
  3. 導航視圖
  4. 查看
  5. 的TableView

我想動態地把東西放在任何視圖的頂端。0

有誰知道如何做到這一點,或者如果它甚至有可能?

+0

[self.view subviews]返回一個NSArray。您可以通過[self.view subviewAtIndex:0]訪問索引0處的視圖; – Zen

+0

你的意思一般,還是你特意試圖覆蓋從'UIImagePickerController'視圖ontop的頂部? – Graham

回答

3

視圖層次結構不是由堆棧表示,而是由樹來表示,所以沒有任何內容可以作爲the topmost view

如果你只是想添加一個視圖上的所有其他視圖頂部,將其添加到UIWindowthis answer完成:

UIWindow* mainWindow = [[UIApplication sharedApplication] keyWindow]; 
[mainWindow addSubview:myNewView]; 

如果查看你的真正用意視圖控制器,那麼我不認爲有辦法「行走」當前堆棧,因爲它取決於堆疊視圖控制器的類別,也出於與視圖層級相同的原因:視圖控制器可能有許多子元素 - 例如UITabBarController

+0

正是我需要的。謝謝。 –

相關問題