Auto Layout
ストーリーボードを使用するiPADアプリでiOS6+
、以前の複雑な作業Auto Resizing
に関与することなく、横向きと縦向きをサポートしたいiOS 5
(アプリはiOS 5と6の両方をサポートするため、AutoLayout
ここでは許可されないため)、私は考えましたソリューションの開始点として、次のようになりました。
2つの別々のストーリーボードを作成します。MainStoryboard-Portrait
&MainStoryboard-Landscape
、現在のビューコントローラー(FirstViewControllerという名前を付けます)が縦向きで、ユーザーがデバイスを横向きに回転させると、ストーリーボードからinstantiate
新しいものになります。ユーザーが縦向きに戻ると、その逆になります。私は次のメソッドでこのようなことをしました:FirstViewController
MainStoryboard-Landscape
willRotateToInterfaceOrientation
FirstViewController.m
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard-Landscape" bundle:[NSBundle mainBundle]];
FirstViewController *VC = [storyboard instantiateViewControllerWithIdentifier:@"VC1"];
self.view = VC.view;
ただし、iOS6 +では次のクラッシュが発生します。iOS5A view can only be associated with at most one view controller at a time!
でも試してみると、クラッシュは発生しませんが、回転は正しく機能しません。ウィンドウの境界は回転しますが、ビュー自体はそのままです。
iOS 5と6の両方でこれを機能させる方法は?または、別のより良い方法がある場合は、そのための実用的なコードサンプルを提供してください。50ポイントの賞金を授与します。