iPhone には単一のビューがあり、それを iPad の詳細ビューとして使用したいと考えています。残念ながら、iPhone の終了ボタンは、SplitViewController の詳細ビューと同じビューを使用したビューを閉じるために使用されます。
詳細ビューはsplitViewControllerの子ビューであるため、終了ボタンをタップしてsplitViewを閉じると(明らかに)エラーが発生します。
これに対する解決策はありますか?
iPhone には単一のビューがあり、それを iPad の詳細ビューとして使用したいと考えています。残念ながら、iPhone の終了ボタンは、SplitViewController の詳細ビューと同じビューを使用したビューを閉じるために使用されます。
詳細ビューはsplitViewControllerの子ビューであるため、終了ボタンをタップしてsplitViewを閉じると(明らかに)エラーが発生します。
これに対する解決策はありますか?
iPhone と iPad の異なるコードをすべて取得し、共有クラスをサブクラス化します。その後、サブクラスで iPad または iPhone 固有のアクションを実行できますが、コア機能はスーパークラスでも同じです。ストーリーボードのビュー コントローラーを新しいサブクラスに必ず変更してください。
したがって、現在、iPhone と iPad で異なる方法で使用されている SingleViewController は次のようになります。
ParentViewController
|
---------------------------------
| |
iPadViewController iPhoneViewController
(detail view controller) (single view controller)
編集:
デバイスごとに異なる方法で処理したいことがいくつかある場合、またはサブクラス化したくない場合は、次のようにデバイスごとにアクションを異なる方法で処理できます。
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
// Code for iPad
} else {
// Code for iPhone
}