Nib автоматически добавляется на экран - PullRequest
0 голосов
/ 19 мая 2011

У меня есть файл пера, который я пытаюсь создать в коде.Главный вид моего UIViewController также загружается из nib-файла.

Вот метод viewDidLoad моего UIViewController:

- (void)viewDidLoad
{
    [super viewDidLoad];

    UINib *nib = [UINib nibWithNibName:@"MyCustomView" bundle:nil];
    NSArray *nibViews = [nib instantiateWithOwner:self options:nil];
    MyCustomView *myView = [nibViews objectAtIndex:0];
    myView.frame = CGRectMake(100.0f, 100.0f, 91.0f, 91.0f);
    [self.view addSubview:myView];
}

Это создает некий бесконечный цикл.Если я закомментирую [self.view addSubview: myView], появится myView, но все, что в данный момент отображается на экране, исчезает.Я не думал, что instantiateWithOwner добавил вид на экран.Если да, то как мне получить к нему доступ?

Спасибо за помощь.

1 Ответ

0 голосов
/ 19 мая 2011

Метод instantiateWithOwner переназначает свойства вашего контроллера представления (установленные из кончика, из которого был создан контроллер) в свойства из нового кончика.Эти свойства, вероятно, включают свойство view, так что метод внутри него содержит вызов setView: и устанавливает представление контроллера представления в представление нового пера.После этого вы пытаетесь добавить представление как подпредставление к себе, и это, естественно, вызывает проблемы.

Вы хотите создать собственное свойство, например, secondaryView, установите представление пера какчто, и добавить его в качестве подпредставления.Вы не хотите переназначать вид вашего контроллера представления.

...