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 在 vi​​ewDidLoad 中将为 nil,因为它还不会被添加到应用程序窗口中。

【讨论】:

是的,请改用viewDidAppear :)

以上是关于iOS - 将当前顶视图与另一个视图进行比较的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 如何将文本视图与另一个文本视图垂直对齐,以制作类似于正确对齐的表格?

如何将viewbag值与mvc 4中的模型另一个值进行比较

如何在约束布局中将一个视图与另一个视图的中心对齐

无法将视图与另一个类链接。初学者XD

在列名中使用别名创建表视图

视图与另一个视图重叠