iOS 5
に
iOS6+
と
Auto Resizing
に
Auto Layout
の複雑さに巻き込まれることなく、ストーリーボードを使用して、私のiPadアプリに風景&縦長の向きをサポートしたい
としてiPad上で複数の向きをサポートしますとき、MainStoryboard-Portrait
& MainStoryboard-Landscape
:最善の方法は、絵コンテ(なし自動レイアウトまたは自動サイズ変更)
は、2つの別々のストーリーボードを作成する:以前のソリューションのための開始点は、次のされたとして私が考えたもの、(アプリは両方のiOS 5 & 6をサポートしていますので、そう何AutoLayout
はここでは許可されません)現在のビューコントローラ(それをFirと名づけましょうstrollerController)がポートレートであり、ユーザーがデバイスを横向きに回転すると、instantiate
が新しいFirstViewController
からMainStoryboard-Landscape
ストーリーボードに、逆も同様です。私はFirstViewController.m
でwillRotateToInterfaceOrientation
方法でこのような何かをした:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard-Landscape" bundle:[NSBundle mainBundle]];
FirstViewController *VC = [storyboard instantiateViewControllerWithIdentifier:@"VC1"];
self.view = VC.view;
が、以下のクラッシュはiOS6 +で発生:A view can only be associated with at most one view controller at a time!
、そこにはクラッシュしなくなりますが、回転は正常に動作しないiOS5を上にもそれを試してみました:ウィンドウの境界が回転するが、ビュー自体はそのまま維持されます。
どのようにiOS6でこれを動作させるには?または、別のより良い方法がある場合は、そのための実用的なコードサンプルを私に提供してください。私はあなたに50ポイントの賞金を授与します。
複雑なUIプロジェクトで作業を開始すると、自動レイアウトが非常に複雑になる – JAHelia
XCode UIデザイナーは、そのような複雑さをほとんど隠しています。 – Andrew
これは良い答えではありません、彼はpre iOS 6をサポートできると言いました.iOS 6だけをサポートすることで、ユーザーベースの大部分を効果的に削除します。 iOS 6の採用は良いですが、そうではありません。 – jmstone617