私のプロジェクトには 3 つのストーリーボードがあります。メイン ストーリーボードと 2 つの個別のワークフロー ストーリーボードがあります。各ストーリーボードは、独自のナビゲーション コントローラーに埋め込まれています。
ストーリーボードをワークフローに分割したので、各ワークフローをプログラムでタブ バーに追加する必要があります。これは正しく機能しています。
ビュー (ワークフロー内) をワークフロー ナビゲーション コントローラーにプッシュしようとすると、問題が発生します。ワークフローのナビゲーション コントローラーが使用されていないようです。各ワークフローのナビゲーション バーの色を変更して、これを確認しました。
それぞれワークフローに設定された 2 つのオプションを試しました。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let mainStoryboard = UIStoryboard(name: "Workflow 1", bundle: nil)
let actionItemStoryboard = UIStoryboard(name: "Workflow 2", bundle: nil)
let workflow1Controller = mainStoryboard.instantiateViewController(withIdentifier: "navigationController1")
let workflow1TabItem = UITabBarItem(title: "Item 1", image: nil, selectedImage: nil)
workflow1Controller.tabBarItem = workflow1TabItem
let workflow2Controller = actionItemStoryboard.instantiateViewController(withIdentifier: "workflow2")
let workflow2TabItem = UITabBarItem(title: "Item 2", image: nil, selectedImage: nil)
workflow2Controller.tabBarItem = workflow2TabItem
self.viewControllers = [workflow1Controller, workflow2Controller]
}
オプション1
ナビゲーションコントローラーを指すようにタブビューコントローラーを設定します(これは間違っていると確信していますが、私が行ったテストでした)。これにより、希望どおりにビューが表示されますが、ナビゲーション項目 (戻るボタン) は表示されません。
オプション 2
リスト ビューを指すようにタブ ビュー コントローラーを設定します (以下のスクリーン ショットを参照)。これにより、戻るボタンが表示されますが、セルをクリックすると、最後のビューがタブの上に表示されます。