有没有好的方法来检查 UIViewController 是否出现?

发布于 2024-12-28 00:01:13 字数 144 浏览 1 评论 0原文

我在 UIViewController 中有一个方法可以根据它当前是否出现来执行操作。 当 viewDidAppear/viewDidDisappear 被调用时,我可以放置一个 BOOL 标志来切换 YES/NO,但是是否有更好的方法/方法来检查?

谢谢。

I have a method in a UIViewController to do things base on if it is currently appearing.
I can put a BOOL flag to switch YES/NO when the viewDidAppear/viewDidDisappear is called but is there a better way/method to check?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

通知家属抬走 2025-01-04 00:01:13

viewDidAppear 方法是您最好的选择。不过,我见过一些边缘情况,根据各种因素,不调用 viewDidAppear/viewDidDisappear

仅仅因为我喜欢控制并且不喜欢任何未知因素,我通常会在控制器中公开一个方法,该方法在调用时完成所有设置,并且当我知道我的控制器正在被调用时,我会调用此方法。

一个粗略示例:

@interface MyController: UIViewController
- (void)reset;
@end

@implementation MyController
- (void)reset
{
    //Set some defaults, do some logging, etc
}
- (void)viewDidAppear
{
     [self reset];
}
- (void)viewDidLoad
{
     [self reset];
}
@end

然后...

@implementation SomeOtherController
- (void)someMethod
{
    [self.myController reset];

    //present self.myController using some logic

}
@end

The viewDidAppear method is your best bet. I have seen some edge cases, though, where viewDidAppear/viewDidDisappear are not called depending on various factors.

Just because I enjoy the control and don't like any unknowns, I typically expose a method in my controllers that do all the setup when called and I would call this method when I know that my controller is getting called into action.

A rough example:

@interface MyController: UIViewController
- (void)reset;
@end

@implementation MyController
- (void)reset
{
    //Set some defaults, do some logging, etc
}
- (void)viewDidAppear
{
     [self reset];
}
- (void)viewDidLoad
{
     [self reset];
}
@end

Then...

@implementation SomeOtherController
- (void)someMethod
{
    [self.myController reset];

    //present self.myController using some logic

}
@end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文