0

実装されたソリューションはIOS4で正常に機能しましたが、IOS6では、割り当てられたビューの表示を拒否します(画面にウィンドウのみが表示されます)。

MainControllerというViewControllerを入手しました。UIViewタイプの2つのIBOutletsを取得しました。1つはportraitViewと呼ばれ、もう1つはlandscapeViewと呼ばれます。

MainController viewWillAppearで、ビューをportraitViewに割り当てます。

self.view = portraitView;

次に、向きを変更して、ビューをlandscapeViewに割り当てます。

私の問題は、viewControllersビューに割り当てた後、どのビューもアップルラーに見えないことです。前述のように、これは以前のバージョンのIOSで正常に機能しました。

どういうわけかビューの位置が変更されていないこと、およびalphaプロパティとhiddenプロパティが正しいことを再確認しました。アウトレットもxibオブジェクトにバインドされています。

誰かが何が間違っているのかについての手がかりを得ましたか?私のxibファイルはストーリーボードを中心に構築されているのではなく、「古い」ibuilderセットアップを構築していることを追加します。

4

3 に答える 3

1

UIViewControllerのドキュメントから:

shouldAutorotateToInterfaceOrientation:
Returns a Boolean value indicating whether the view controller supports the specified orientation. (Deprecated in iOS 6.0. Override the supportedInterfaceOrientations and preferredInterfaceOrientationForPresentation methods instead.)

shouldAutorotateToInterfaceOrientationを使用して回転がいつ発生するかを知る場合は、iOS6で自動回転がどのように機能するかを確認する必要があります。

于 2012-10-15T17:57:53.637 に答える
0

viewWillAppearは、おそらくプロセスの後半でビューを設定するには遅すぎると思います。contollerのinitメソッドまたはviewDidLoadのいずれかでそれを実行してみて、それが機能するかどうかを確認してください。

ただし、これを行う別の方法については、Appleドキュメントの「ViewControllerプログラミングガイド」の「代替ランドスケープインターフェイスの作成」セクションを確認することをお勧めします。

于 2012-10-15T18:13:25.290 に答える
0

今は少し恥ずかしいです。私は自分のビューアウトレットを@synteziseするのを忘れていたことがわかりました。これにより、ビューが自動解放され、メインコントローラーに表示されませんでした。

なぜIOS6より前に機能したのかわかりません。

于 2012-10-20T11:30:20.483 に答える