自分の view が表示される前に別のタブで回転されている可能性があるので、回転に対応する処理をプログラムで行う場合は viewWillAppear の中でも処理を行わなくてはならない。
1 @implementation SomeViewController
2
3 - (BOOL)
4 shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
5 return YES;
6 }
7
8 - (void)
9 AdjustHV {
10 switch ( self.interfaceOrientation ) {
11 case UIInterfaceOrientationPortrait:
12 case UIInterfaceOrientationPortraitUpsideDown:
13 oV1.frame = CGRectMake(
14 0
15 , 0
16 , self.view.frame.size.width
17 , self.view.frame.size.height / 2
18 );
19 oV2.frame = CGRectMake(
20 0
21 , self.view.frame.size.height / 2
22 , self.view.frame.size.width
23 , self.view.frame.size.height / 2
24 );
25 break;
26 case UIInterfaceOrientationLandscapeLeft:
27 case UIInterfaceOrientationLandscapeRight:
28 oV1.frame = CGRectMake(
29 0
30 , 0
31 , self.view.frame.size.width / 2
32 , self.view.frame.size.height
33 );
34 oV2.frame = CGRectMake(
35 self.view.frame.size.width / 2
36 , 0
37 , self.view.frame.size.width / 2
38 , self.view.frame.size.height
39 );
40 break;
41 }
42 }
43
44 - (void)
45 viewWillAppear:(BOOL)p {
46 [ super viewWillAppear:p ];
47 [ self AdjustHV ];
48 }
49
50 - (void)
51 willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)p
52 duration:(NSTimeInterval)pDuration {
53 [ super willAnimateRotationToInterfaceOrientation:p duration:pDuration ];
54 [ self AdjustHV ];
55 }
56 @end