2012-05-12 5 views
1

私はモーダルビューコントローラを起動するUIViewControllerを持っています。どちらも向きをサポートしています。モーダルビューコントローラで回転している場合は、回転が発生しているので、モーダルビューコントローラを閉じると元のビューは正しい向きになりますが、元のサイズ(たとえば、480x320になるように回転させると、テキストやその他のアイテムは新しい向きに正しく表示されますが、320x480のレイアウトで配置されます)。ビューコントローラに回転が発生したことを知らせるにはどうすればよいですか?UIViewControllerはモーダルビューが表示されている回転を認識していません

+0

その便利を願っています。コントローラが現在表示されていなくても '-shouldAutorotateToInterfaceOrientation:'が 'YES'を返すならば、回転は自動的に処理されます。あなたは 'UINavigationController'を使用していますか?スタック上のいずれかのビューコントローラが自動回転をサポートしていない場合、ビューは回転しません。いずれにしても、回転を強制するために使用できるハッキングはありますが、根本的な問題を修正することが最善の方法ですが、細部がなくても何がうまくいかないのかは分かりません。 – modocache

答えて

1

NSNotificationを使用します。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
     { 
      // send a notification here 
     } 

ViewControllerの背後に、オブザーバを追加し、レイアウトを修正するメソッドを呼び出します。

An old SO answer explaining the sytntax for NSNotification

私は `UIViewController`がモーダル通常の回転について提示コントローラ「を教えてくれない」が表示されている

+0

しかし、私は名前として何を入れますか?それが起こるためには、何を引き起こすでしょうか? – Andrew

+0

は、NOtificationとオブザーバーで同じであれば、任意の名前を使用してトリガーします – zahreelay

関連する問題