我想了解一些关于ViewWillAppear
.I 的 viewwillappar 数据刷新方法。我想要做的是,当这个视图控制器从前一个推送时,这种刷新不应该发生。(最初加载此控制器时不应调用 viewwillappear)。这可能吗?如果是这样,我该怎么做?
请帮助我谢谢
我想了解一些关于ViewWillAppear
.I 的 viewwillappar 数据刷新方法。我想要做的是,当这个视图控制器从前一个推送时,这种刷新不应该发生。(最初加载此控制器时不应调用 viewwillappear)。这可能吗?如果是这样,我该怎么做?
请帮助我谢谢
viewWillAppear 总是在视图出现时被调用
您可以使用实例变量来确保第一次没有调用它,即
@implmentation ViewController {
BOOL _firstLoad
}
- (void)viewDidLoad
{
[super viewDidLoad];
_firstLoad = YES;
}
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
if (!_firstLoad) {
// do what you want to do when it is not the first load
}
_firstLoad = NO;
}
这是使用 swift 4 的示例。
var isLoadedFirstTime = false
override func viewDidLoad() {
super.viewDidLoad()
isLoadedFirstTime = true
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if !isLoadedFirstTime {
// Do what you want to do when it is not the first load
}
isLoadedFirstTime = false
}
[更新解决方案] 使用 swift 5 的示例:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if !isMovingFromParent {
// Do what you want to do when it is not the first load
}
}