私はこのNIBとビューを持つこのiPadアプリケーションを持っています。 各ビューには2つのNIBがあります.1つは鉢の向き用と1つはランドスケープ用ですので、プログラムでNIBを特定のUIViewControllerに切り替える方法を探しています。UIViewControllerビューを変更する最善の方法NIBプログラムで
は、今私は、各コントローラのwillRotateToInterfaceOrientation方法で使用しています。この機能があります。
void UIHandleRotation(UIViewController *controller, NSString *nibName, UIInterfaceOrientation orientation, BOOL transform){
double angle = 0.0;
if(orientation == UIInterfaceOrientationPortrait) {
angle = PI * 2 /* 360° */;
}
else if(orientation == UIInterfaceOrientationLandscapeLeft){
angle = PI + PI/2 /* 270 ° */;
// Each landscape nib is [nib-name]L
nibName = [NSString stringWithFormat:@"%@L", nibName];
}
[[NSBundle mainBundle] loadNibNamed:nibName owner:controller options:nil];
if(transform) {
controller.view.transform = CGAffineTransformMakeRotation(angle);
}
}
をしかし、それは私に奇妙な行動(めちゃめちゃUIコントロールの位置を与えて、出口は、インタフェースのように関連付けられていませんビルダーなど)。
何か間違っているのですか、これを実装するより良い方法がありますか? おかげ
注:私はナビゲーションコントローラを使用していないので、私はあなたのUIViewControllerは2つのUIViewsを持つことになりますので、あなたは、ペン先ごとにビューを持っている必要があります。このソリューションEasiest way to support multiple orientations? How do I load a custom NIB when the application is in Landscape?
私が今追加したメモを参照してください。 –
ナビゲーションコントローラを使用すると、これを行う最も簡単な方法が使用できます。インターフェイスのナビゲーションコントローラを公開する必要はありません。リンク先の例はそうしていません。ユーザーはナビゲーションコントローラが使用されていることを伝えることはできません。 – TechZen