3

私のルート ビュー コントローラーは、マスター ビュー コントローラーとして UITableViewController を持つ UISplitViewController です。iPhone (コンパクトな幅) では、UINavigationController のように見えます。

主人

セルをタップして詳細ビュー コントローラーを表示します

詳細

ゴミ箱ボタンをタップすると、現在のメモが削除されます。私の問題は、その後マスタービューに戻る方法ですか? これは UISplitViewController であるため、UINavigationController のように現在のビュー コントローラーをポップすることはできません。

4

1 に答える 1

4

同様の問題があり、最終的に解決策を見つけました。私が理解しているように、コンパクトな幅の場合、詳細ナビゲーションコントローラーはマスターナビゲーションコントローラーのビューコントローラーになります。したがって、あなたがしなければならないことは次のとおりです。

  1. Split View Controller の collapsed プロパティをチェックして、ビューが 1 つだけ存在するかどうかを判断します。折りたたまれていない場合 (iPad など)、詳細ビューに加えてテーブル ビューが既に表示されています。

  2. 折りたたまれている場合 (iPhone など)、詳細ナビゲーション コントローラーを介してマスター ナビゲーション コントローラーへの参照を取得し、ルート ビュー コントローラー (この場合はテーブル ビュー コントローラー) にポップします。

これは、詳細ビュー コントローラーで使用するコードです。あなたの場合、詳細ビューコントローラーのボタンアクションにこのコードを追加するだけでよいと思います:

if splitViewController!.collapsed {
    let detailNavController = parentViewController as UINavigationController!
    let masterNavController = detailNavController.parentViewController as UINavigationController!
    masterNavController.popToRootViewControllerAnimated(true)
}

幸運を!

于 2015-03-28T18:32:16.560 に答える