Хорошо, вот еще вопрос.
Я создаю UIView под названием ProgressView
, который является полупрозрачным представлением с индикатором активности и индикатор выполнения.
Я хочу иметь возможность использовать это представление в различных контроллерах представления в моем приложении, когда это необходимо.
Я знаю 3 разных способа сделать это (но меня интересует только один):
1) Создавать все представление программно, создавать экземпляры и настраивать по мере необходимости. Не беспокойтесь, я его получу.
2) Создайте UIView в построителе интерфейса, добавьте необходимые объекты и загрузите его, используя метод, подобный приведенному ниже. Проблема в том, что мы в основном предполагаем, что представление - это objectAtIndex: 0, потому что нигде в документации я не нашел ссылки на порядок элементов, возвращаемых функцией [[NSBundle mainBundle] loadNibName:
.
NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"yournib"
owner:self
options:nil];
UIView *myView = [nibContents objectAtIndex:0];
myView.frame = CGRectMake(0,0,300,400); //or whatever coordinates you need
[scrollview addSubview:myView];
3) Создайте подкласс UIViewController и позвольте ему управлять представлением как обычно. В этом случае я бы никогда не поместил контроллер представления в стек, а только его основное представление:
ProgressViewController *vc = [[ProgressViewController alloc] initWithNibName:@"ProgressView" bundle:nil];
[vc.view setCenter:CGPointMake(self.view.center.x, self.view.center.y)];
[self.view addSubview:vc.view];
[vc release];
Насколько я могу судить, # 3 - это правильный способ сделать это (кроме программного), но я не совсем уверен, безопасно ли выпустить контроллер представления ProgressView, в то время как представление другого контроллера сохраняет свое основное представление (внутреннее чувство говорит, что оно будет протекать? )?
Что мне делать с точки зрения управления памятью в этом случае, где и когда мне следует выпустить контроллер представления ProgressView?
Заранее спасибо за ваши мысли.
Ура,
Rog
]