поместите XIB в UIView управления iphone - PullRequest
2 голосов
/ 07 июля 2011

Я знаю, как разместить nib-файл в «главном» контроллере вида:

enter image description here

при выполнении этого метода будет отображаться новый файл пера.

Можно ли вместо этого поместить этот nib-файл в контроллер UIView?

enter image description here

Я хочу разместить этот nib-файл в этом контроллере представления, а не в главном представлении. Как я мог это сделать?


Edit:

Я пытался делать то, что вы упоминаете, Пол. Я не знаю, что я делаю неправильно. В любом случае вот что я сделал:

Я создал еще один контроллер представления со свойствами, которые вы упомянули.

enter image description here

Я подключил свой IBoutlet UIView *exampleView к базовому виду: enter image description here

тогда отсюда я заблудился, я не знаю, где разместить другие методы. Я хотел бы поместить этот пример в:

enter image description here

это представление.

Я пытался поместить их в pgBackground.m, но это не работает. Я хочу поместить их в IBaction, чтобы я мог загрузить это с помощью события «touch up» внутри кнопки.

Ответы [ 4 ]

1 голос
/ 11 июля 2011

Мне удалось поместить nib-файл в элемент управления uiview, но у меня проблема в том, что подпредставление не будет вращаться, если устройство это сделает.В настоящее время я работаю над решением этой проблемы, но пока здесь есть вопрос , который может показать вам, как добавить представление из другого файла пера в элемент управления uiview.

0 голосов
/ 17 июля 2011

ты можешь сказать мне, что ты хочешь сделать? если вы хотите изменить ориентацию, то сначала объявите переменную типа bool en в файле делегата приложения, затем определите в файле делегата приложения, если изменение ориентации обнаружит и сделает переменную логического типа истинной для ландшафта и ложной для портрета. этот процесс используют для следующих всех просмотров. и вы хотите выполнить nib в главном контроллере, тогда у вас есть два способа, один динамически, а другой - создателем интерфейса. в построителе интерфейса u Выберите контроллер навигации и поместите в файл основного окна. После этого вы измените вид представления контроллера навигации, нажав cmd + 4, и выберите вид, который вы хотите отобразить первым.

0 голосов
/ 12 июля 2011

- (IBAction) btnSubmit_click {

UIDeviceOrientation orientation = [[UIDevice currentDevice]orientation]; 

if (orientation == UIDeviceOrientationLandscapeLeft) {
   // Do stuff
}
else if (orientation == UIDeviceOrientationLandscapeRight) {
    // Do stuff like  [self setCordinateLandscape];
}

} - (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation {

// Return YES for supported orientations
//set as per requirements ====>>  
return (interfaceOrientation == UIDeviceOrientationLandscapeRight);
// Or  return TRUE;

}

0 голосов
/ 08 июля 2011

Если я буду следовать, я думаю, вам нужно:

Создать подкласс UIView с ассоциированным xib

ExampleView.h
ExampleView.m
ExampleView.xib

Установить свойство, содержащее иерархию View (все, что выхотите подключиться в Интерфейсном Разработчике)

ExampleView.h
@property (nonatomic, retain) IBOutlet UIView *exampleView;

ExampleView.m
@synthesize exampleView = _exampleView;

В ExampleView.m вам необходимо добавить:

- (void)awakeFromNib
{
  [super awakeFromNib];
  [[NSBundle mainBundle] loadNibNamed:@"ExampleView" owner:self options:nil];
  [self addSubview:self.exampleView];
}

Вы используете пробуждение от nib, чтобы вы могли использовать этот подкласс вИнтерфейсный Разработчик.Если вы также хотите создать его экземпляр в коде, вам нужно подключить xib в методе init.В этом случае я бы, вероятно, распаковал загрузку пера следующим образом:

- (id)initWithFrame:(CGRect)frame
{
  self = [super initWithFrame:frame];
  if (self) {
    [self loadNibIntoView];
  }
  return  self;
}

- (void)awakeFromNib
{
  [super awakeFromNib];
  [self loadNibIntoView];
}

- (void)loadNibIntoView
{
  [[NSBundle mainBundle] loadNibNamed:@"ExampleView" owner:self options:nil];
  [self addSubview:self.exampleView];
}

В файле ExampleView.xib обязательно подключите ваш IBOutlet UIView *exampleView к базовому виду.

Теперь влюбой xib-файл, в котором вы хотите использовать свой пользовательский вид, просто перетащите его в окно и измените класс на свой подкласс.Вот так у меня получилось, я с нетерпением жду, когда кто-нибудь предложит улучшения.

...