我想知道一些关于ViewWillAppear
的内容。我有一个用于数据刷新的viewwillappar方法。我想要做的是当这个viewcontroller从前一个推出时,这种刷新不应该发生。 (最初加载此控制器时,不应调用viewwillappear)。这可能吗?如果是这样我怎么能这样做?
请帮帮我 感谢
答案 0 :(得分:7)
视图出现时将始终调用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;
}
答案 1 :(得分:0)
这是使用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
}
答案 2 :(得分:0)
[更新解决方案] 使用 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
}
}