AppDelegate не может добавить subView - PullRequest
0 голосов
/ 29 января 2012

Поскольку appDelegate не имеет представления, а только окна, сложно понять, как загрузить из него представление. Моя проблема долгое время заключалась в том, что при срабатывании didReceiveLocalNotification я не могу загрузить новое представление с этим событием. Я работал над этим до того момента, когда я должен что-то с этим сделать. Когда я пытаюсь добавить Subview, xcode выдает ошибку:

Тип получателя 'UIWindow' для сообщений экземпляра не объявляет метод с селектором addSubView

для этого: (в [self.window addSubView: view];)

screwLightBulbViewController *view = [screwLightBulbViewController newMyView];
[self.window addSubView:view];

Я понимаю, что файл appDelegate не имеет addSubview, но я хочу переключиться на конкретное представление при его запуске.

Я пробовал много других способов, таких как вызов функции в screwLightBulbViewController и создание из этого представления. Моя функция в viewController теперь выглядит так:

+(id)newMyView
{
    UINib *nib = [UINib nibWithNibName:@"MyView" bundle:nil];
    NSArray *nibArray = [nib instantiateWithOwner:self options:nil];
    screwLightBulbViewController *me = [nibArray objectAtIndex: 0];
    return me;
}

любая помощь будет очень признательна, и спасибо за ваше время. :)

1 Ответ

2 голосов
/ 29 января 2012

Это addSubview, а не addSubView:.UIWindow является подклассом UIView.

Добавление представления непосредственно в виде подпредставления к окну обычно не рекомендуется, поэтому вместо этого вы должны попытаться добавить представление как подпредставление в представление верхнего контроллера.Если вы можете сэкономить некоторое время, вам следует просмотреть руководство по программированию view и руководство по программированию контроллера view , это будет полезно в будущем.

...