Currently I'm using this method to detect the orientation and device:
It works for iPhones, but these's an issue with iPad, that is whatever the orientation is, [[UIScreen mainScreen] bounds].size.width
always ==768, and [[UIScreen mainScreen] bounds].size.height
always == 1024. What's wrong with my coding?
+(NSString*)GetOrientation{
if([UIScreen mainScreen].bounds.size.width < [UIScreen mainScreen].bounds.size.height){
NSLog(@"Potrait");
return @"Potrait";
}
else{
NSLog(@"Landscape");
return @"Landscape";
}
}
+(NSString*)GetDeviceAccordingToScreenSize:(UIViewController*)ctrl{
if ([[UIDevice currentDevice].model isEqualToString:@"iPad"]) {
int screenWidth = [[UIScreen mainScreen] bounds].size.width;
if (screenWidth==768) {
return @"P-iPad";
}else if(screenWidth==1024){
return @"L-iPad";
}else{
return @"ERROR";
}
}else{
if ([[self GetOrientation] isEqualToString:@"Potrait"]) {
int screenHeight = [[UIScreen mainScreen] bounds].size.height;
switch (screenHeight) {
case 667:{
return @"P-iPhone6";
break;
}
case 736:{
return @"P-iPhone6Plus";
break;
}
case 568:{
return @"P-iPhone5";
}
default:{
return @"P-iPhone4";
break;
}
}
}else{
int screenWidth = [[UIScreen mainScreen] bounds].size.width;
// float screenHeight = [[UIScreen mainScreen] bounds].size.height;
switch (screenWidth) {
case 667:{
return @"L-iPhone6";
break;
}
case 736:{
return @"L-iPhone6Plus";
break;
}
case 568:{
return @"L-iPhone5";
break;
}
default:{
return @"L-iPhone4";
break;
}
}
}
}
}
By the way, in extension you don't have access to [UIApplication sharedApplication]