gpt4 book ai didi

ios - 如何在 viewDidAppear 中只执行一次?

转载 作者:行者123 更新时间:2023-11-30 11:24:09 24 4
gpt4 key购买 nike

我想检查粘贴板,并在 View 出现时如果它包含特定值则显示警报。我可以将代码放入 viewDidLoad 中以确保它只被调用一次,但问题是警报 View 显示得太快。我知道我可以设置一个计时器来推迟警报的出现,但我认为这不是一个好的解决方法。

我检查了问题iOS 7 - Difference between viewDidLoad and viewDidAppear发现有一个步骤来检查 View 是否存在。所以我想知道是否有任何API可以做到这一点?

更新:“仅一次”意味着 View Controller 实例的生命周期

最佳答案

您可以使用一个标准的内置方法来实现此目的。

objective-C :

- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];

if ([self isBeingPresented] || [self isMovingToParentViewController]) {
// Perform an action that will only be done once
}
}

swift 3:

override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)

if self.isBeingPresented || self.isMovingToParentViewController {
// Perform an action that will only be done once
}
}

当 View Controller 由于模态显示而首次显示时,对 isBeingPresented 的调用为 true。当 View Controller 首次被推送到导航堆栈时,isMovingToParentViewController 为 true。 View Controller 第一次出现时,两者之一为真。

无需处理 BOOL ivars 或任何其他技巧来跟踪第一个调用。

关于ios - 如何在 viewDidAppear 中只执行一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50940457/

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