2010-12-17 15 views
3

私はipviewアプリケーションで2つのビューのマスタービューと詳細ビューを持つsplitviewcontrollerを実装しています。 ipadの向きを縦向きから横向きに変更するときは、マスタービューを非表示にし、詳細表示のフレームサイズをフルスクリーンで表示するように変更する必要があります。このため私はこのコードを使用しています。splitviewcontrollerの詳細ビューのフレームサイズがios4.2で変更されない

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation 
{ 
     //adjust master view 
     UIViewController *master = [self.splitViewController.viewControllers objectAtIndex:0]; 
     UIViewController *detail = [self.splitViewController.viewControllers objectAtIndex:1]; 
     CGRect t = master.view.frame; 
     t.size.width = 0; 
     t.size.height = 0; 
     t.origin.x = 0; 
     t.origin.y = 0; 
     [master.view setHidden:YES]; 
     [master.view setFrame:t]; 

     //adjust detail view 
     CGRect f = detail.view.frame; 
     f.size.width = 1004; 
     f.size.height = 768; 
     f.origin.x = 0; 
     f.origin.y = 0; 

     [detail.view setFrame:f]; 

} 

このコードはios3.2では正常に動作しますが、ios4.2では動作しません。マスタービューはios4.2では非表示になりますが、ディテールビューのフレームサイズは変更されません。

私を助けてください。 ありがとう Shruti

答えて

0

私が問題に見いだしたのは、マスタービューを非表示にして回転の詳細ビューのフレームサイズを変更する代わりに、詳細ビューを含むクラスをモーダルビューとして提示したことです。先ほど前のクラスからそれを押し出していました。また、モーダル表示を消すために、完了ボタンを使ってナビゲーションバーを追加しました。このことは私のために働いた。

ListingViewController *viewController = [[ListingViewController alloc] initWithNibName:@"ListingViewController" bundle:[NSBundle mainBundle]]; 
UINavigationController *modalVC = [[UINavigationController alloc]initWithRootViewController:viewController]; // to add navigation bar 
modalVC.navigationBar.barStyle = UIBarStyleBlackOpaque; 
[self.navigationController presentModalViewController:modalVC animated:YES]; 
[modalVC release]; 
[viewController release]; 
+0

これは私の問題を解決するためにしたものの単なる代替手段でした。それは正確に質問された質問への答えではありません。 – Aisha

関連する問題