我有視圖A,當用戶點擊一個按鈕時,我彈出視圖B.當用戶解散視圖B,我們返回視圖AI想刷新視圖A上的標籤,但是有一個事件,我可以用來檢測我們已經返回到視圖B?我知道ViewDidLoad不會再次觸發。如何檢測一個SubView已關閉?
回答
我很困惑你的問題的意見,但你可以看看NSNotificationCenter
。
在這種情況下,你會當用戶關閉瀏覽B.發佈的NSNotification
事件
視圖A和B可與通知中心偵聽這種解職申報登記,調用一個選擇器(方法)時,此聽到通知。
在此方法中,您可能會更新標籤的狀態或執行涉及更新應用程序狀態的任何其他操作。
同樣,您可能會在彈出視圖B時發佈通知,並讓其他類註冊該通知類型。
有關NSNotificationCenter
的更多信息位於Apple's documentation site。
這聽起來像你可能指的是UIViewControllers,而不是UIViews,是否正確?在這種情況下,您可以使用-viewWillDisappear:(BOOL)動畫和-viewDidDisappear:(BOOL)動畫來確定您的viewController何時將被/正在被解散。這些應該在您的示例中的視圖B上實現。如果你想知道什麼時候View A再次可見,你可以使用-viewWillAppear:和-viewDidAppear。
是的,UIViewControllers。然而,我發現當視圖B被解除時(即this.View.RemoveFromSuperview();),ViewWillAppear和ViewDidAppear不會在視圖A上被觸發。我通過在兩個事件處理程序的View A中放入Console.WriteLine語句來檢查這一點,並且它們僅在第一次出現View A時觸發。 – 2010-01-31 21:08:37
這是正確的;爲了讓它們觸發,你需要使用UINavigationController(或UITabBarController) – 2010-01-31 21:16:59
因此,我認爲唯一的辦法就是NSNotificationCenter。那是對的嗎?這是否會讓View A在View B完成RemoveFromSuperview之後更新自己的標籤?我擔心View A會得到通知的方式是View A將實例化標籤。其中的一個例子是將視圖A的視圖B的引用傳遞給視圖A,併爲View A提供一個屬性來訪問這樣的標籤,如果視圖B嘗試更新它,則標籤爲空,因爲視圖A的標籤當前未實例化。 – 2010-01-31 23:39:25
- 1. 如何檢測JFrame已關閉?
- 2. 檢測文件已關閉
- 3. 檢測SKShapedNode已關閉
- 4. Ruby:如何檢測套接字的一側是否已關閉
- 5. 檢測TCP中的另一個對端已關閉
- 6. 檢測COM端口是否已關閉
- 7. NIO - 檢測已關閉的連接
- 8. 檢測Excel文件是否已關閉
- 9. 檢測Portlet會話已關閉
- 10. 檢測Android中的活動已關閉
- 11. 如何檢測一個座標軸屬於matplotlib中已關閉的窗口
- 12. 如何測試FileInputStream已關閉?
- 13. 如何檢查zipfile是否已關閉
- 14. 如何檢查net.Conn已關閉?
- 15. 如何檢測無模式CDialog是否已關閉?
- 16. 如何檢測設備瀏覽器是否已關閉?
- 17. 檢測iframe何時關閉
- 18. 如何在iframe的另一個域中檢測關閉?
- 19. 檢測popover關閉
- 20. 如何檢測CSS與PHP關閉?
- 21. 如何檢測IE11關閉事件
- 22. 如何檢測瀏覽器關閉?
- 23. 如何檢測關閉php標籤?
- 24. 如何檢測父進程的關閉?
- 25. 如何檢測應用程序關閉?
- 26. 檢測觸摸裏面subView(除了一個按鈕)touchesEnded
- 27. 檢測Outlook檢查器窗口是否已關閉
- 28. 檢測窗口關閉
- 29. PyQt - 如何檢測和關閉用戶界面,如果它已經運行?
- 30. OBD2如何檢查點火開關已關閉
有趣,謝謝!對於混淆的道歉,我仍然習慣適當的術語。 – 2010-01-31 21:01:42