私はiPadアプリを開発しています。横向きモードと縦向きモードの両方を許可します。私のUIはポートレートモードでは問題ありませんが、ランドスケープモードに変更すると、UIが台無しになります。これに関連するいくつかのSO投稿を見て、UIViewのinitWith...に次のコードを追加しました。
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(abc)
name:UIDeviceOrientationDidChangeNotification
object:nil];
これを行った後、私のUIはポートレートモードで正常に動作しています。横向きモードに変更すると、UIは正常です。しかし、ポートレートモードに戻すと、アプリがクラッシュします。アプリのクラッシュに関連するSOに関するいくつかの投稿を読んで、楽器について知ってもらいました。ゾンビを有効にしたところ、すでにリリースされているオブジェクトにメッセージが送信されており、このメッセージはNSNotificationCenterから送信されていることがわかりました。
デバイスの登録以外に処理する必要があるものはありますか?また、実装をUIViewからUIViewControllerに変更し、UIViewControllerがデバイスの向きに関して持っているメソッドを実装できる方法はありますか?これを行うために必要な手順を教えてください。ありがとう!