#iphone #uiview #uiviewcontroller #nscoder #autorotate
#iPhone #uiview #uiviewcontroller #nscoder #автозапуск
Вопрос:
У меня есть представление, которое инициализируется с помощью — (id)initWithCoder:(NSCoder *)aDecoder
Как мне инициализировать это представление в viewController
?
Я думаю, мне нужен, viewController
если я хочу, чтобы представление было autoRotate
с устройством. Я не уверен, может быть, я мог бы выполнить autoRotation
без viewController
?
Добавление наблюдателя и shouldAutorotateToInterfaceOrientation:
в представление не привело к автоматическому вращению представления. Но когда я также добавляю
-(void) orientationChanged:(NSNotification *) notification
{
NSLog(@"orientationChanged: %d", [[notification object] orientation]);
}
Я получаю значение ориентации в окне моей консоли.
Любая помощь была бы высоко оценена.
Ответ №1:
initWithCoder:
предназначен для управления сериализованными объектами. Вы никогда не вызываете его напрямую. Объект с initWithCoder:
методом все равно должен иметь обычный назначенный инициализатор (для представления это было бы initWithFrame:
). Однако, как правило, я рекомендую использовать файл nib, а не пытаться создавать этот материал вручную. Это значительно упрощает работу, и загрузка из файла nib вызовет initWithCoder:
.
Управлять автоповоротом с помощью контроллера представления намного проще. Это не обязательно, но оно выполняет часть работы за вас.
Комментарии:
1. Большое спасибо за вашу помощь. Я использовал метод initWithFrame:, и все работает отлично. Мне просто нужно было немного подтолкнуть.