#author("2016-12-07T16:07:49+09:00","default:wikiwriter","wikiwriter") #author("2016-12-14T14:06:56+09:00","default:wikiwriter","wikiwriter") [[UIKit]] &tag(UIKit/ユニバーサルアプリ); *目次 [#i285a888] #contents *関連ページ [#rf135186] *参考情報 [#ic13adc7] -[[[iOS 8] UISplitViewController が iPhone に対応しました | Developers.IO:http://dev.classmethod.jp/references/ios8-uisplitviewcontroller-for-iphone/]]…Objective-C -[[Master-DetailのiPhoneアプリをiPad対応してみた - Qiita:http://qiita.com/yosan/items/6893c36382ba0b5b08fd]] *UISplitViewControllerを利用して簡易的にiPad対応 [#e80f64a1] -Master Detailアプリを作成すると初期状態からUISplitViewControllerが利用されている。 -Interface BuilderでSplit View Controllerをダウンロードすると、一連のビューコントローラーがまとめてドロップされる。 **Detailのビューコントローラーを変更する [#b44f39f2] -例えばView Controllerを Table View Controllerに変更する場合、Storyboardで削除してドロップし、Segueを接続し直せば良い。 -Segueは以下の2つ。 --Table View ControllerをNavigation View Controllerに埋め込み、マスターからNavigation Controllerに接続(Show)。 --Split View ControllerからRelationを接続。 **Detailに戻るボタン [#kabc9104] *** 戻るボタンを追加する場合 [#c1590b7b] -Master Detalアプリでは以下のような初期処理を行っている。 #pre{{ func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. let splitViewController = self.window!.rootViewController as! UISplitViewController let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController navigationController.topViewController!.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem splitViewController.delegate = self return true } }} ***戻るボタンのラベルを変更する [#hc494e88] -[[ios - How to name a back button in UISplitViewController - Stack Overflow:http://stackoverflow.com/questions/31318847/how-to-name-a-back-button-in-uisplitviewcontroller]] -MasterがわのNavigation Controllerを選択し、View Controllerのタイトルを設定する。 **フルスクリーン表示ボタンの切替 [#s7f9819b] -[[UISplitViewController あれこれ | hirooka.pro:https://hirooka.pro/?p=8105]] **iPhone 6/6s/7 Plusのポートレートモード対応 [#z17e45da] -例えばMasterがテーブルで、行選択で詳細を表示したい場合、普通にperformSegueで遷移するとマスター側が切り替わってしまう。 -それを防ぐためにはshowDetailViewControllerを使わないと行けない **編集画面の表示 [#n8529b51] -詳細画面に編集画面をpushして表示するような画面の場合、iPad化すると間延びした画面になってしまう。 -この場合popoverかモーダル表示にしてformSheet形式で表示する。 -センタリングする場合formSheet形式にすると良いかも。