NSLog
問題は、アプリケーションを最初に実行したときに、アプリケーションの内部にログが表示されないことです。しかし、向きを横向きに変更するまでにテキストが表示されます。ちなみに、アプリケーションのデフォルトのビューは縦です。
viewDidLoad:
- (void)viewDidLoad
{
[super viewDidLoad];
}
しかし、私が自分でこれを行うとviewDidLoad:
- (void)viewDidLoad
{
[super viewDidLoad];
UIInterfaceOrientation toInterfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];
NSTimeInterval duration = 0.0;
[self willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
}
滞りなくログを表示します。
問題は、ログを表示する正しい方法を行っているかどうかです。
じぶんのwillAnimateRotationToInterfaceOrientation:toInterfaceOrientation:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
CGFloat height = CGRectGetHeight([[UIScreen mainScreen] bounds]);
CGFloat width = CGRectGetWidth([[UIScreen mainScreen] bounds]);
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
switch (toInterfaceOrientation) {
case UIInterfaceOrientationPortrait:
NSLog(@"iPhone/Portrait");
break;
case UIInterfaceOrientationLandscapeLeft:
NSLog(@"iPhone/Landscape/Left");
break;
case UIInterfaceOrientationLandscapeRight:
NSLog(@"iPhone/Landscape/Right");
break;
default:
break;
}
}
else {
switch (toInterfaceOrientation) {
case UIInterfaceOrientationPortrait:
NSLog(@"iPad/Portrait");
break;
case UIInterfaceOrientationPortraitUpsideDown:
NSLog(@"iPad/Upside Down");
break;
case UIInterfaceOrientationLandscapeLeft:
NSLog(@"iPad/Landscape/Left");
break;
case UIInterfaceOrientationLandscapeRight:
NSLog(@"iPad/Landscape/Right");
break;
default:
break;
}
}
}