gpt4 book ai didi

iphone - 为什么 self.navigationController.visibleViewController 在不可见的 View Controller 上返回 true

转载 作者:行者123 更新时间:2023-12-01 17:32:05 26 4
gpt4 key购买 nike

目前,我按以下方式设置了导航堆栈:
ViewController A -> ViewController B -> ViewController C -> ViewController D
ViewController 的实现代码中C 和 ViewController D ,我有一个选择器,如果满足以下测试,它将只运行代码块

if (self.navigationController.visibleViewController)

我面临的问题是上述测试对于 ViewController C 总是返回 true。 .首先,我在 IOS 模拟器中启动我的应用程序,然后向上导航到 View Controller D。一次 ViewController D加载完毕,我按下模拟器上的“主页”按钮。按下主页按钮后,我再次单击我的应用程序并重新启动我的应用程序(进入前台)。现在发生的事情很奇怪,我可见的 View Controller 是 ViewController D ,因为那是我上次使用的 View Controller。虽然 ViewController D现在是目前唯一对我可见的 View Controller ,上面的 if 语句为 ViewController C 返回 true也! (我只想执行 ViewController D's 选择器代码,这是一个问题)。

所以这就引出了一个问题,成为 visibleViewController 到底意味着什么?我怎样才能做到 ViewController C's如果 ViewController D 则选择器不会执行是出现在我面前的 View Controller .. 谢谢!

最佳答案

visibleViewController是返回当前可见 Controller 的属性,而不是返回 YES 的 bool 属性或 NO取决于当前 Controller 是否可见。只要屏幕上有一个可见的 View Controller ——任何 Controller ——检查self.navigationController.visibleViewController将返回 YES , 因为任何非 nil传递给 if 的值被认为是 YES .

检查应如下所示:

if (self == self.navigationController.visibleViewController)

比较将返回 YES如果当前 View Controller 是导航 Controller 的可见 View Controller ,并且 NO除此以外。

关于iphone - 为什么 self.navigationController.visibleViewController 在不可见的 View Controller 上返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18007077/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com