未分類

NavigationControllerを用いた画面遷移(コードのみ)

投稿日:

NavigationControllerの画面遷移で、ストーリーボードの黄色丸からドラックする方法ではなく、コードのみを用いて遷移する方法。

準備

・遷移元Viewcontroller、遷移先NextViewControllerを用意する。
・ViewControllerのみEnbed in NavigationControllerをする。
・ViewControllerに画面遷移するためのボタンを用意する。

1. 遷移先のNextViewControllerにStoryBoarIDを設定する。

今回は「next」とした。
またUse StoryBoardIDにチェックを入れる。

2.遷移元ViewControllerにコードを書く。

遷移するためのボタンをIBActionで繋いで、その中にStoryBaordIDから遷移先を取得し、push遷移するための記述をする。

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func button(_ sender: Any) {
        //遷移先のNextViewControllerを取得
        let nextVC = self.storyboard?.instantiateViewController(withIdentifier: "next") as! NextViewController
        //画面遷移をする
        navigationController?.pushViewController(nextVC, animated: true)
    }
    
}

※「as! NextViewController」のところを遷移先のController名にするのを忘れがちなので注意!

3. 遷移先NextViewControllerにコードを書く。

NavigationBarを表示させ、タイトルを設定するための記述をする。

import UIKit

class NextViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        //NavigationBarを表示する
        navigationController?.setNavigationBarHidden(false, animated: false)
        //遷移先のタイトルを設定する
        self.navigationItem.title = "タイトル"
    }

}

4. 完成

 

-未分類

執筆者:

関連記事

no image

NavigationControllerでpopで前の階層を戻った時に値を渡す

NAvigationControllerで次の階層へ行く時に値を渡す方法と異なるので注意。 ひとつ前の階層のVCで受け取る変数を宣言しておく。 現在の階層で以下を記述する。 // 一つ前のViewCo …

CocoaPodsでライブラリをインストールする手順

1.pod init 最初にPodFileを作成する。 プロジェクトが格納されている上位フォルダを右クリック→サービス→フォルダに新規ターミナル ターミナルに「pod init」を入力してEnter。 …

no image

PremiereProでアニメがコマ落ちする対処法

レンダリングしてもアニメ映像が荒い映像乱れが見られる。 プレビュー再生は問題なかったのに、書き出すと乱れていた。 以下の方法で解決した。 環境設定→メディア→「ハードウェアによる高速処理のデコードを有 …

no image

実機テストでFailed to start remote service on device. が出る時

実機で起動すると、「Failed to start remote service on device. 」のエラーが出てアプリが落ちてしまう。   解決策 xcodeのバージョンを上げたら( …

no image

GoogleAdMobのバナーのサイズを指定する

import UIKit import GoogleMobileAds class ViewController: UIViewController { @IBOutlet weak var bann …