【问题标题】:iOS - compare current top view with another viewiOS - 将当前顶视图与另一个视图进行比较
【发布时间】:2014-11-30 15:30:26
【问题描述】:

我正在寻找一种方法来找到当前显示的顶视图(包括模态视图),并且在 Stackoverflow 上有人说这是这样做的代码:

UIView *topView = [[[[UIApplication sharedApplication] keyWindow] subviews] lastObject];

然后我想将该 topView 与我所在的某个视图控制器(比如说 FirstViewController)进行比较,以了解当前呈现的视图控制器是否是这个特定的 VC。 如何将 ViewController 与此 topView 进行比较?互联网上有很多关于使用哪个代码的不同答案,我找不到任何能给我一个好的解决方案的答案。 基本上,假设我在 FirstViewController.m 中,我只想在当前顶视图是 FirstViewController.m 时显示警报(它通过 NSNotification 工作,所以现在也显示来自 FirstViewController 的警报,即使我在另一个 ViewController)。

什么是正确的代码?

谢谢

【问题讨论】:

  • 这与 Xcode 无关。这是一个关于 iOS 中的 API 的问题。
  • 抱歉打错了标签,你是对的,这是关于 iOS 的。我的错。

标签: ios uiview modalviewcontroller


【解决方案1】:

我终于找到了一个可以接受的答案:

if(weakSelf.isViewLoaded && weakSelf.view.window){
//view is visible
}

这非常有效。只有一件重要的事情:不要在 viewDidLoad 中使用它。 view.window 在 vi​​ewDidLoad 中将为 nil,因为它还不会被添加到应用程序窗口中。

【讨论】:

  • 是的,请改用viewDidAppear :)
猜你喜欢
  • 2010-09-15
  • 2018-02-07
  • 1970-01-01
  • 1970-01-01
  • 2021-01-08
  • 2012-05-26
  • 1970-01-01
  • 1970-01-01
  • 2014-08-20
相关资源
最近更新 更多