Как мне ссылаться на мой MainViewController из другого класса? - PullRequest
0 голосов
/ 12 июня 2010

Я создаю приложение для iPhone Utility, которое использует UIImageView для отображения анимации.В методе viewDidLoad () MainViewController я создаю экземпляр CustomClass, а затем настраиваю анимации:

- (void)viewDidLoad 
{
 [super viewDidLoad]; 
 cc = [CustomClass new];

 NSArray * imageArray = [[NSArray alloc] initWithObjects:
          [UIImage imageNamed:@"image-1-off.jpg"],
          [UIImage imageNamed:@"image-2-off.jpg"],
          [UIImage imageNamed:@"image-3-off.jpg"],
          [UIImage imageNamed:@"image-4-off.jpg"],
          nil];
 offSequence = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
 offSequence.animationImages = imageArray;
 offSequence.animationDuration = .8;
 offSequence.contentMode = UIViewContentModeBottomLeft;
 [self.view addSubview:offSequence];
 [offSequence startAnimating];
}

Это прекрасно работает.Однако я хотел бы иметь возможность переместить весь приведенный выше код, который устанавливает UIImageView, в мой CustomClass.Проблема в строке от второй до последней:

[self.view addSubview: offSequence];

Мне в основном нужно заменить «self» ссылкой на MainControllerView, поэтому я могу вызватьaddSubview из моего CustomClass.Я попытался создать экземпляр var CustomClass с именем mvc и метод установки, который принимает в качестве аргумента ссылку на MainViewController:

- (void) setMainViewController: (MainViewController *) the_mvc 
{
 mvc = the_mvc;
}

И затем я вызвал его в MainViewController следующим образом:1012 * [cc setMainController: MainViewController: self];

Но это приводит ко всевозможным ошибкам, которые я могу опубликовать здесь, но мне кажется, что я могу это слишком усложнить.Есть ли более простой способ ссылаться на MainViewController, который создал мой CustomClass?

1 Ответ

0 голосов
/ 12 июня 2010

Самый простой способ сделать это - создать подкласс UIImageView и создать инициализатор настройки, который принимает массив.Итак,

@interface MyCustomImageView:UIImageView {
//...
}

-(id) initWithFrame(CGRect) aRect animationImages:(NSArray *) imageArray;
@end

Затем в контроллере основного вида просто инициализируйте пользовательский вид изображения, заполните его и добавьте в подпредставления.Это сделает все красиво инкапсулированным, модульным и пригодным для повторного использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...