2011-11-23 29 views
0

當我遞歸列出從窗口開始的所有子視圖(從[[UIApplication sharedApplication] windows]遍歷視圖的所有子視圖)時,我沒有看到我的應用程序的所有視圖。我如何獲得所有視圖活動?

當我將標籤分配給Interface Builder中的工具欄或導航欄上的按鈕時,我無法使用viewWithTag:方法(從窗口或視圖實例開始)找到這些標籤。但我確實在大多數時間找到了標記的工具欄或導航欄......

當我以編程方式從按鈕,工具欄等調用超級視圖返回時,我經常不回窗口。

有沒有辦法找到應用程序中活動的所有視圖?

+0

有代碼在[這個答案](http://stackoverflow.com/q/2715772/154803) – progrmr

+0

@progrmr漂亮的小片段 - 感謝分享 – Till

+0

感謝您的代碼片段的鏈接。但是這並不能解決問題。實際上,我使用了類似的代碼來獲取所有子視圖。 –

回答

0

要獲得所有視圖,必須等待,直到創建所有視圖。這需要一些時間。

我在viewDidLoad中調用了我的傾銷函數,如[self displayViews],並且只獲得了一部分視圖(因爲其餘部分尚未創建)。

正確的方式來獲得所有的意見是叫performSelector,因爲這隊列同樣的威脅中請求,但並等待一點點:

[self performSelector:@selector(displayViews) withObject:nil afterDelay:1.0f]; 

備註:標籤分配給工具欄按鈕Interface Builder將不會顯示,因爲按鈕的編碼方式不同,也就是說,按鈕確實會顯示,但標籤值爲0

相關問題