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

时间:2012-01-20 16:48:28

标签: objective-c ios cocoa-touch uiviewcontroller

我在UIViewController中有一个方法,如果它当前正在出现的话,就会做一些事情。 我可以在调用viewDidAppear / viewDidDisappear时设置一个BOOL标志来切换YES / NO但是有更好的方法/方法来检查吗?

感谢。

1 个答案:

答案 0 :(得分:0)

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