我有視圖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. 檢測Excel文件是否已關閉
- 8. 在form1中檢測到form2已關閉
- 9. 檢測Portlet會話已關閉
- 10. NIO - 檢測已關閉的連接
- 11. 檢測Android中的活動已關閉
- 12. c#Compact Framework檢測連接已關閉
- 13. 如何檢測一個座標軸屬於matplotlib中已關閉的窗口
- 14. 如何檢測用戶是否已關閉了一個winrt應用程序
- 15. 如果應用程序已關閉如何檢測/退出
- 16. 如何測試FileInputStream已關閉?
- 17. 如何檢查zipfile是否已關閉
- 18. 如何檢查net.Conn已關閉?
- 19. 如何檢測無模式CDialog是否已關閉?
- 20. 如何檢測設備瀏覽器是否已關閉?
- 21. 如何檢測Windows 8中的搜索已關閉?
- 22. 如何檢測SettingsFlyout已在Windows 8應用程序中關閉
- 23. 如何檢測瀏覽器/選項卡已關閉
- 24. 服務如何檢測到活動已關閉?
- 25. 如何以編程方式檢測Internet Explorer已關閉?
- 26. 檢測iframe何時關閉
- 27. 如何檢測WebBrowserTask何時關閉?
- 28. 如何在iframe的另一個域中檢測關閉?
- 29. 檢測popover關閉
- 30. Lua需要一個}來關閉一個{已經關閉的
有趣,謝謝!對於混淆的道歉,我仍然習慣適當的術語。 – 2010-01-31 21:01:42