1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Swift】 画面遷移を行う

Last updated at Posted at 2021-02-01

まえがき

Xcode12.4のSwiftを使ったiOSアプリ開発にて、以前のXcodeと異なることが多かったので記載

新規の画面を作成する

  • 右上の+ボタンをクリックし、オブジェクトの一覧を表示する
  • View Controllerを選択し、Storyboardに追加する

追加後のStoryboard
 2021-02-01 18.24.42.png

  • [File]->[New]->[File...]から新規クラスを作成する
  • Cocoa Touch Classを選択
  • Class: NextViewControllerで作成
  • 追加した画面を選択し、右の設定のClass(作成したクラス名)とStoryboard IDを設定(今回はNextViewを設定)
     2021-02-01 18.24.14.png
  • 遷移元となるViewを選択し、設定画面のisInitial View Controllerにチェックがついているか確認する
     2021-02-01 18.53.39.png

ViewControllerの設定

  • 遷移先の画面の背景を赤色に変更する
  • 以下、NextViewControllerのviewDidLoadメソッド
// 最初に読み込まれるコード
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        //追加
        self.view.backgroundColor = UIColor.red // 背景色を設定
    }
  • 作成済みのボタンに画面遷移のコードを追加する
  • ボタン(UIパーツ)の設定はStoryboardにUIパーツを設置するを参照
  • 以下、ViewControllerのbuttonClickメソッド
// ボタンをクリックした時
    @IBAction func buttonClick(_ sender: Any) {
        label.text = "ボタンがクリックされました!" // ラベルの表示内容
        
        // 以下、今回追加コード
        // NextView画面表示
        let nextViewController = self.storyboard?.instantiateViewController(withIdentifier: "NextView") as! NextViewController
        nextViewController.modalPresentationStyle = .fullScreen
        self.present(nextViewController, animated: true, completion: nil)
    }
  • modalPresentationStyleをfullScreenに設定すると全画面で画面遷移される

ボタンをクリック後

###modalPresentationStyleをfullScreenに設定しない時

  • 以下、ViewControllerのbuttonClickメソッド
// ボタンをクリックした時
    @IBAction func buttonClick(_ sender: Any) {
        label.text = "ボタンがクリックされました!" // ラベルの表示内容
        
        // 以下、今回追加コード
        // NextView画面表示
        let nextViewController = self.storyboard?.instantiateViewController(withIdentifier: "NextView") as! NextViewController
        //nextViewController.modalPresentationStyle = .fullScreen //設定しない
        self.present(nextViewController, animated: true, completion: nil)
    }

ボタンをクリック後

画面上部に少しだけ前の画面が見えている
(上部をタッチして下にスクロールすると前の画面に戻ることができる)

今回はここまで !


関連記事

1. SwiftでStoryboardを扱う
2.StoryboardにUIパーツを設置する
3.画面遷移を行う(本記事)
4.画面上に画像を表示する方法
5.ImagePickerでカメラロールから写真を選択して表示する
6.PHPickerでカメラロールから写真を選択して表示する

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?