我有视图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