Как бы мне загрузить xib, когда ориентация устройства изменяется в Xcode?
Как я буду загружать новый xib, когда ориентация устройства изменится? т. е. загрузить альбомно-ориентированный xib, когда устройство повернуто в альбомную ориентацию и наоборот с портретной ориентацией. и как я буду автоматически обнаруживать изменение ориентации и приспосабливаться оттуда?
1 ответ:
По-видимому, все, что мне нужно сделать, это создать приложение на основе представления turn shouldAutoRotateToInterfaceOrientaion в YES и создать два подкласса uiviewcontroller с отдельными файлами xib, а затем добавить это в контроллер вида приложения:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged) name:UIDeviceOrientationDidChangeNotification object:nil];
И добавьте этот метод в контроллер вида приложения:
-(void)orientationChanged { UIDeviceOrientation orientation = [UIDevice currentDevice].orientation; if (orientation == UIDeviceOrientationPortrait || orientation == UIDeviceOrientationPortraitUpsideDown) { [[NSBundle mainBundle] loadNibNamed:@"Portrait" owner:self options:nil]; } else { [[NSBundle mainBundle] loadNibNamed:@"Landscape" owner:self options:nil]; } }
И вот оно, когда устройство поворачивается, xib автоматически загружается в правильной ориентации.
Edit: вам также нужно добавить два viewcontrollers программно(@property и @synthesize them also), и два ViewController в appviewcontroller.xib в IB каждый с именем класса, соответствующим подклассу viewcontroller каждого созданного вами xib. затем добавьте представление подключите его к владельцу файла и подключите розетки В IB к контроллерам представления, которые вы создали в ib, и это должно быть все