2012-01-20 69 views
2

我有一个UIViewController中的方法来基于它是否正在出现。 当viewDidAppear/viewDidDisappear被调用时,我可以放一个BOOL标志来切换YES/NO,但有没有更好的方法来检查?有没有好的方法来检查UIViewController是否出现?

谢谢。

+1

这可能帮助:http://stackoverflow.com/questions/2777438/how-to-tell -if-uiviewcontrollers-view-is-visible – albertamg

+0

这是一个很好的帮助。谢谢! – evanwong

回答

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 
相关问题