2017-10-19 2 views
-1

スプリットビューコントローラの経験が豊富で助けになる人は、大きな助けになります。 私は、ログイン画面から始まるプロジェクトを持っています。続いて、結果を得るためにAPIを呼び出す検索画面があります。検索画面がA​​PI呼び出しの結果を取得した後、それらをsplitviewcontrollerに渡して表示したいと思います。基本的にはsplitviewcontrollerのマスターになります。これにはテーブルビューがあります。だからこれをどうやって? segueがsplitviewcontrollerからマスターにsegueの識別子を持たないとき、私はどのようにパフォーマンスを使うことができますか? splitviewcontrollerを3番目または4番目の画面として使用することはできますか? これを達成する別の方法はありますか?iOS Swift 4 - splitviewcontrollerマスターにデータを渡す方法

ありがとうございました。

答えて

0

すべてUIViewControllerにはsplitViewControllerというプロパティがあります。これはoptionalの値で、UISplitViewControllerを使用している場合にはnilになる場合もあります。 splitViewControllerプロパティを使用すると、スプリットビューコントローラに埋め込まれているビューコントローラにアクセスできます。

UISplitViewControllerには、マスターとディテールビューコントローラの2つの主要コンポーネントがあります。 iPadの場合マスターは、画面の左側にあり、最小の容量を占め、の詳細が大きな領域を右側に占有します。 iPhone上では、両方がナビゲーションスタックの上に重ねて表示され、両方が画面全体を占めます。

これは、マスターから詳細にアクセスする方法である:

if let splitVC = self.splitViewController, let detailVC = splitVC.viewControllers[1] { 
    detailVC.doSomething() 
} 

そして、これは細部からマスターにアクセスする方法である:

if let splitVC = self.splitViewController, let masterVC = splitVC.viewControllers[0] { 
    masterVC.doSomething() 
} 

あなたがUINavigationControllerを使用している可能性に留意してくださいまたはUITabBarControllerあなたのストーリーボード内にマスターまたはディテールが埋め込まれている可能性があります。その場合も同様の操作を行いますが、それらのビューコントローラをUINavigationControllerまたはUITabBarControllerとしてキャストし、それらのドリルダウンを行って真のマスターと詳細を取得します。

+0

ご回答いただきありがとうございます。私はこのプロパティで遊んで、私の場合はAPIによって返されたオブジェクトの配列であるいくつかのデータを渡すために私がマスターにアクセスできるかどうかを確認します。私はいくつかのことを試した後に更新します。私が古い投稿のいくつかを検索したところ、それが不可能であることが確認された場所が示された。スプリットビューコントローラ(マスターとディテール)は初期/ルートビューコントローラでなければなりません。ストーリーボードやスクリーンをこのような順序でデザインするのが設計上賢明ならば、Appleがなぜこのようなことを制限するのか理解できませんでした。 – user8637139

+0

あなたはそれを行うことができましたか? –

+0

私は今週末に取り組んでいきます。お知らせします。ありがとう。 – user8637139

関連する問題