【发布时间】:2023-03-18 09:10:01
【问题描述】:
我在 UIViewController 中有一个方法可以根据它当前是否出现来做事。 当调用 viewDidAppear/viewDidDisappear 时,我可以放置一个 BOOL 标志来切换 YES/NO,但是是否有更好的方法/方法来检查?
谢谢。
【问题讨论】:
标签: objective-c ios cocoa-touch uiviewcontroller
我在 UIViewController 中有一个方法可以根据它当前是否出现来做事。 当调用 viewDidAppear/viewDidDisappear 时,我可以放置一个 BOOL 标志来切换 YES/NO,但是是否有更好的方法/方法来检查?
谢谢。
【问题讨论】:
标签: objective-c ios cocoa-touch uiviewcontroller
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
【讨论】: