Как загрузить отдельный UIView в разработке для iPhone

Я должен использовать UIView как вид паузы при нажатии на кнопку паузы в игре, которую я сейчас разрабатываю. Этот вид паузы будет использоваться в 40 UIViewController. Я использую «раскадровку» для своего пользовательского интерфейса, но я разработал представление паузы в файле .xib.

Как загрузить и использовать это представление в моем приложении? Как просто загрузить UIView?


person Reex    schedule 02.07.2012    source источник
comment
+1 отмена бессмысленного минуса   -  person Chance Hudson    schedule 02.07.2012


Ответы (1)


Вы можете добавить это представление в свой контроллер представления и отключить его, используя [yourView setEnabled: NO]; а затем включите его, когда вам нужно использовать setEnabled: YES.

Или если у вас есть несколько контроллеров представления, которые будут его использовать. Создайте отдельный контроллер представления и поместите в него свое представление. Программно добавьте представление этого контроллера представления в каждый контроллер представления.

PauseViewController *pauseVC = [self.storyboard instantiateViewControllerWithIdentifier:@"PauseID"];
[self.view addSubview:pauseVC.view];

классидентификатор

person Basel    schedule 02.07.2012
comment
В файле .xib представление — это просто UIView, но не контроллер представления! - person Reex; 02.07.2012
comment
Помещение его в UIViewController является возможным решением. - person Basel; 02.07.2012
comment
Базель › Я использую ваш код, но ничего не происходит!??? Добавленный контроллер представления не отображается. - person Reex; 03.07.2012
comment
Пожалуйста, дайте мне более подробную информацию о том, что вы сделали. Добавить контроллер представления, используя только мой код, недостаточно. Вы поместили свой вид паузы в новый контроллер представления? Это контроллер представления класса PauseViewController? Я отредактирую свой код, чтобы включить скриншот. Кроме того, поскольку вы используете раскадровку, вам понадобится instanceiateViewControllerWithIdentifier. - person Basel; 03.07.2012
comment
Я нашел в связанных темах начало решения link codeNSArray *arr = [ [NSBundle mainBundle] loadNibNamed:@MyView owner:nil options:nil]; UIView *fv = [[arr objectAtIndex:0] сохранить]; // теперь у вас есть представление, сделайте с ним что-нибудь: fv.center = CGPointMake(100,100); [self.view addSubview:fv]; - person Reex; 03.07.2012
comment
Подход, который я вам дал, проверен и работает так, как ожидалось. Если решение в этой теме решило вашу проблему, я рад это слышать :) - person Basel; 03.07.2012