Как передать показатель активности между методами /
Здравствуйте, у меня есть проблема с добавленным подпредставлением. У меня есть этот код в method1:
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
spinner.center = CGPointMake(160, 500);
spinner.hidesWhenStopped = YES;
[self.view addSubview:spinner];
[spinner startAnimating];
и я хочу добавить
[spinner stopAnimating]
по другому методу2.
Как мне это сделать?
2 ответа
Решение
В вашем файле.m (нет необходимости делать это в.h, если вам не нужно делать это из другого класса):
@interface MyClass ()
@property (strong, nonatomic) UIActivityIndicatorView *spinner;
@end
@implementation MyClass
- (void)someMethod
{
// where you were calling the code from your post, do this:
self.spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
self.spinner.center = CGPointMake(160, 500);
self.spinner.hidesWhenStopped = YES;
[self.view addSubview:self.spinner];
[self.spinner startAnimating];
}
- (void)someOtherMethod
{
[self.spinner stopAnimating];
}
Проблема в том, что вы настроили spinner
в вашем коде без сохранения ссылки на него. Таким образом, другой метод не может найти его. У вас есть два варианта:
приписывать
spinner
к переменной экземпляра при ее создании, чтобы другой метод мог использовать эту переменную экземпляра для доступа к счетчикуДать
spinner
tag
так что другой метод может найти его как подпредставление вашегоview
по его тегу