No es cierto que no se pueda determinar la orientación de lanzamiento, es cierto que es un dolor en la parte trasera hacerlo.
esto es lo que necesita hacer.
su primer UIViewController necesita tener una lógica especial para captar la información que desea.
es posible que desee crear un UIStartupController solo para estos fines si es tan importante para su flujo.
en el caso de mi proyecto, ya teníamos presente un controlador de inicio de este tipo.
todo lo que necesita es el código
-(id) initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.launchOrientation = UIDeviceOrientationUnknown;
}
return self;
}
-(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration
{
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
if (self.launchOrientation == UIDeviceOrientationUnknown && duration > 0)
self.launchOrientation = UIInterfaceOrientationPortrait;
else
self.launchOrientation = toInterfaceOrientation;
}
siguiendo básicamente, si no estamos en el lanzamiento de UIInterfaceOrientationPortrait, la primera secuencia de rotación de devolución de llamada en realidad revelan la orientación del lanzamiento.
si se inicia en UIInterfaceOrientationPortrait, entonces debemos verificar que la duración de la primera rotación no sea cero, y entonces sabemos que se inició desde el retrato.
para ayuda de batería o resultado rápido ver ..... este http://stackoverflow.com/questions/5888016/ios-device-orientation-on-load/32758397#32758397 – jenish