objective-c - 有没有检查 UIViewController 是否出现的好方法?

标签 objective-c ios cocoa-touch uiviewcontroller

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

谢谢。

最佳答案

viewDidAppear方法是你最好的选择。不过,我已经看到了一些边缘情况,其中 viewDidAppear/viewDidDisappear不根据各种因素调用。

仅仅因为我喜欢控件并且不喜欢任何未知数,我通常会在我的 Controller 中公开一个方法,该方法在调用时执行所有设置,并且当我知道我的 Controller 被调用时我会调用此方法。

一个 例子:

@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

关于objective-c - 有没有检查 UIViewController 是否出现的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8944892/

相关文章:

ios - 为什么在使用 flutter 模块构建 iOS 原生应用程序时要修复 "Frameworks/Flutter.framework: Permission denied"?

IOS UIPicker 列表超出 TableView 单元格?

iphone - 在 iOS 中读取 PPT、xls 和 .doc 文件的 SDK

ios - 对于具有 lineSpacing 和多种颜色的单行文本,UILabel 大小不正确

objective-c - MKPolyline 不会显示

ios - iOS 10.3 中的备用图标

objective-c - NSTimer 在滚动期间停止

objective-c - respondsToSelector 外观代理失败

objective-c - 检索 Facebook 好友列表

ios - 自定义 UITextInput 实现不显示多阶段输入建议