2011-03-14 57 views
1

確定是否存在具有特定名稱的子視圖的實例的最佳方法是什麼?我有一個webview應用程序,它使用webview委託方法webviewDidStartLoad和webviewDidFinishLoad添加和刪除子視圖,以子視圖的形式添加自定義活動指示器。我認爲這工作正常,但我注意到,有些情況下,webviewDidStartLoad和webviewDidFinishLoad不一定會成對激發。例如,如果我開始加載webview,然後將應用程序發送到後臺(在webview完成加載之前),然後將其帶回前臺,我將最終取消活動指示器子視圖(因爲當我發送應用程序進入後臺webviewDidFinishLoad永遠不會被調用,所以當應用程序回到前臺時,webviewDidStartLoad會添加另一個視圖的ontop實例。本質上,該子視圖會被添加兩次並僅刪除一次。確定是否存在具有特定名稱的子視圖的實例

所以我想要要做的只是添加子視圖,如果它不存在,只有刪除它,如果它確實存在。那麼確定子視圖是否已存在或正在顯示的最佳方法是什麼?謝謝!

回答

1

您應該跟蹤subvie w在您擁有webview委託方法的類的屬性中。如果該屬性爲零,則不存在子視圖,您應該設置它。刪除它時,將該屬性設置爲零。

和/或實例化一次,並添加/刪除該視圖,而不會一遍又一遍地重新分配和分配。

1

每個視圖都有一個屬性「tag」,它是一個整數,您可以使用該整數來標識應用程序中的視圖對象。有一種方法「viewWithTag」,它返回標籤與指定值匹配的視圖。

相關問題