iOS - 将当前顶视图与另一个视图进行比较
Posted
技术标签:
【中文标题】iOS - 将当前顶视图与另一个视图进行比较【英文标题】:iOS - compare current top view with another view 【发布时间】:2014-11-30 15:30:26 【问题描述】:我正在寻找一种方法来找到当前显示的顶视图(包括模态视图),并且在 *** 上有人说这是这样做的代码:
UIView *topView = [[[[UIApplication sharedApplication] keyWindow] subviews] lastObject];
然后我想将该 topView 与我所在的某个视图控制器(比如说 FirstViewController)进行比较,以了解当前呈现的视图控制器是否是这个特定的 VC。 如何将 ViewController 与此 topView 进行比较?互联网上有很多关于使用哪个代码的不同答案,我找不到任何能给我一个好的解决方案的答案。 基本上,假设我在 FirstViewController.m 中,我只想在当前顶视图是 FirstViewController.m 时显示警报(它通过 NSNotification 工作,所以现在也显示来自 FirstViewController 的警报,即使我在另一个 ViewController)。
什么是正确的代码?
谢谢
【问题讨论】:
这与 Xcode 无关。这是一个关于 ios 中的 API 的问题。 抱歉打错了标签,你是对的,这是关于 iOS 的。我的错。 【参考方案1】:我终于找到了一个可以接受的答案:
if(weakSelf.isViewLoaded && weakSelf.view.window)
//view is visible
这非常有效。只有一件重要的事情:不要在 viewDidLoad 中使用它。 view.window 在 viewDidLoad 中将为 nil,因为它还不会被添加到应用程序窗口中。
【讨论】:
是的,请改用viewDidAppear
:)以上是关于iOS - 将当前顶视图与另一个视图进行比较的主要内容,如果未能解决你的问题,请参考以下文章