我希望在创建视图后0.5秒后显示加载程序。
- (id)init
{
self = [super init];
if (self) {
self.loaded = NO;
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.loader = [self newLoader];
self.loaded = YES;
self.loaderTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(showLoader) userInfo:nil repeats:NO];
[self.view addSubview:self.loader];
}
- (void)showLoader
{
if (self.loaded == NO) {
[self.loader show:YES];
}
}
通常在self.loaded = YES
中使用viewDidLoad
时,不应显示加载程序。但它仍然出现。
我应该将self.loaded = YES
放在init
中,以便它不显示吗?
编辑:
如果我在self.loaded
而不是'init'中初始化viewDidLoad
,则不会显示。但是为什么我不能在'init'方法中初始化'self.loaded'以便加载器不应该出现?
答案 0 :(得分:0)
将初始值设定项从self.loaded
更改为_loaded
- (id)init
{
self = [super init];
if (self) {
_loaded = NO;
}
return self;
}
当您使用self
时,它会调用viewDidLoad
,因此它会在初始化程序执行完成之前执行。