読者です 読者をやめる 読者になる 読者になる

【swift】画面に非表示でpushViewControllerする方法

swift objective-c iPhoneアプリ開発

はじめに

やりたかったことを文字にすると非常にわかりずらいのですが、以下のことになります

1. 画面Aを表示
2. 画面B(入力画面)へ遷移
3. 2.からの戻るボタンで画面C(一覧画面)へ遷移

わかりずらいですが、表示してない画面に戻るということになります

実装方法

AviewController.swift

AviewController: UIViewController {

    ・・・

    func showB(sender: UIButton) {
        var vc = BviewController()
        self.navigationController?.pushViewController(vc, animated: true)
    }
}

BviewController.swift

BviewController: UIViewController {

    ・・・

    func showC(sender:UIButton) {
        // 現在のスタックの前に次に新たに登録したいViewControllerを追加 ★ここがポイント
        var count = self.navigationController!.viewControllers.count - 1
        self.navigationController?.viewControllers.insert(CviewController(), atIndex: count)
        self.navigationController?.popViewControllerAnimated(true)
    }
}

CviewController.swift

CviewController: UIViewController {
    ・・・
}

やりたかったのはメッセージなどに書き込んだ後にリストページなどにもどるということでした
戻るボタンで再び書き込み画面を表示したくないってだけだったんですけどね、、、

以上です