如何知道哪个uiview用户正在使用
Posted
技术标签:
【中文标题】如何知道哪个uiview用户正在使用【英文标题】:How to know which uiview user is using 【发布时间】:2011-12-31 07:50:08 【问题描述】:我正在实施推送通知,并在用户使用应用程序时对其进行管理。因此会出现一个警报视图,并且在视图单击时它必须重定向到 uiview。现在,如果用户在警报到来时显示 uiview,我怎么能知道顶部的 uiview?如何更新 uiview 当前?警报显示在方法 didReceiveRemoteNotification 中的应用程序委托中。 谢谢
编辑: 我想做这样的事情:
UiviewController current* = [delegate getCurrentView];
if(current.toString=="NotificationView")
[current update:notificationText];
else
saveNotification;
goToNotificationView;
【问题讨论】:
视图控制器有一个view
属性,它是它的根视图。是你要找的吗?
【参考方案1】:
我认为您的主要window
中很可能有一个UINavigationController
(它可以是UITabBarController
等),但如果您的主要window
中有一个UINavigationController
,那么您可以检查您的UINavigationController
的顶部视图控制器@ 使用[self.navigationController topViewController];
或者您也可以检查UINavigationController
的viewControllers
堆栈,该堆栈返回您推入UINavigationController
的所有视图控制器的数组,并且可以获得该对象的最后一个对象array
这是您使用 [[self.navigationController viewControllers] lastObject];
的顶视图。
如果您的主 window
中有 UITabBarController
,那么您可以使用 [[self.tabbarcontroller viewControllers] objectAtIndex:[self.tabbarcontroller selectedIndex]];
获取 UINavigationController
的实例(如果存在),并且可以执行上述步骤来获取顶视图。
【讨论】:
以上是关于如何知道哪个uiview用户正在使用的主要内容,如果未能解决你的问题,请参考以下文章
被覆盖的 UIControl 或 UIView 如何知道在其上方结束的触摸事件?
如何在不知道它是哪个视图的情况下将 UIView 添加为最顶层视图的子视图?