プログラムで新しいビューコントローラーを迅速に提示/プログラムでクラスに識別子を与える

VK1

ストーリーボードを使用して新しいページ/クラスを表示する簡単なアプリをすでに作成しました。ただし、プログラムで同じことをしたいと思います。

私の最初のViewController.swiftファイルは次のようになります。

import UIKit

class ViewController: UIViewController {


    var mainImageView: UIImageView!
    var chooseButton: UIButton!
    var nameLabel: UILabel!

    override func loadView() {
        view = UIView()
        view.backgroundColor = .white

        let chooseButton = UIButton(type: .custom) as UIButton
        chooseButton.backgroundColor = .blue
        chooseButton.layer.borderColor = UIColor.darkGray.cgColor
        chooseButton.layer.borderWidth = 2
        chooseButton.setTitle("Pick a side", for: .normal)
        chooseButton.frame = CGRect(x: 100, y: 100, width: 200, height: 100)
        chooseButton.addTarget(self, action: #selector(clickMe), for: .touchUpInside)
        chooseButton.layer.cornerRadius = chooseButton.frame.size.height/2
        self.view.addSubview(chooseButton)

        self.nameLabel = UILabel()

        nameLabel.text = "Here is your side"
        nameLabel.textAlignment = .center
        nameLabel.backgroundColor = .cyan
        nameLabel.frame = CGRect(x: 100, y: 400, width: 200, height: 100)
        self.view.addSubview(nameLabel)


    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
    @objc func clickMe(sender:UIButton!) {
        print("Button Clicked")
        self.nameLabel.text = "updated title"
        let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)

        let loadVC = storyBoard.instantiateViewController(withIdentifier: "SelectionScreen") as! SelectionScreen
        self.present(loadVC, animated: true, completion: nil)


    }

ボタンを押すと、次のエラーが表示されます。

キャッチされなかった例外 'NSInvalidArgumentException'が原因でアプリを終了しています、理由: 'ストーリーボード()に識別子' SelectionScreen ''のビューコントローラーが含まれていません

Cocoa TouchClassを使用して次のViewcontrollerを作成しました。

import UIKit

class SelectionScreen: UIViewController {


    override func loadView() {
        view = UIView()
        view.backgroundColor = .red




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

        // Do any additional setup after loading the view.
    }



}

ストーリーボードで最初にこれを行ったとき、Identity Inspectorを使用してストーリーボードIDを設定し、instantiateViewController(withIdentifier :)が表示したい新しいクラスをロードできるようにしました。ストーリーボードを使用せずに、SelectionScreenクラスの識別子を提供するにはどうすればよいですか?

Desdenova

ストーリーボードを使用していない場合は、識別子は必要ありません。インスタンス化して提示するだけです。

let loadVC = SelectionScreen()
self.present(loadVC, animated: true, completion: nil)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

miltipleビューをプログラムで迅速に配置する

分類Dev

プログラムで迅速にセグエ識別子名を変更する

分類Dev

カスタムコントロールをプログラムでAutoLayoutビューの中央に配置する

分類Dev

プログラムで別のビューコントローラー/シーンに移動する

分類Dev

プログラムでルート ビューをビュー コントローラーに追加すると、正しく配置されない

分類Dev

プログラムでフラグメントに新しいビューを追加すると、シンボルエラーを解決できません

分類Dev

プログラムでタブを切り替えるときにルートビューコントローラの変数をクリアする

分類Dev

PageMenuビューコントローラーを動的に(プログラムで)追加する方法は?

分類Dev

新しいコントローラーをiOSでプログラム的に提示すると、空白の画面のみが表示されます

分類Dev

異なるビューコントローラ間でプログラム的に文字列を渡す方法(Swift)

分類Dev

Eclipse PDE:プログラムでパッケージエクスプローラーに新しいプロジェクトをロードする方法は?

分類Dev

コントローラの新しいインスタンスをプログラムで作成する

分類Dev

グラデーションビューがプログラムで迅速に機能しない

分類Dev

SwiftUIでプログラムで別のビューに切り替える方法(ボタンを押さずに)

分類Dev

プログラムで初期ビューコントローラーをタブコントローラースイフト2に設定

分類Dev

カスタムJavaビュークラスをRelativeLayoutにプログラムでロードする方法

分類Dev

ビューコントローラの外部でプログラムでビューを作成する方法

分類Dev

新しいナビゲーションコントローラーの順序/スタックをプログラムで定義しますか?

分類Dev

ConstraintLayoutにプログラムでビューを追加します

分類Dev

合金のスクロールビューにプログラムでビューを追加する方法

分類Dev

プログラムでUIStackViewにビューを追加する

分類Dev

プログラムでビューをUIStackViewに追加する

分類Dev

プログラムでビューに制約を追加する

分類Dev

プログラムでCSSクラスのプロパティを新しいクラスにコピーする

分類Dev

プログラムで調整した後、スクロール中にビューを変更するListView

分類Dev

プログラムで同じビューコントローラにセグエしますか?

分類Dev

プラットフォームに依存しないプロセスをプログラムで開始する

分類Dev

プログラムでEmberに新しいルートを作成する

分類Dev

プログラムでビューをUIActivityIndicatorに置き換える

Related 関連記事

  1. 1

    miltipleビューをプログラムで迅速に配置する

  2. 2

    プログラムで迅速にセグエ識別子名を変更する

  3. 3

    カスタムコントロールをプログラムでAutoLayoutビューの中央に配置する

  4. 4

    プログラムで別のビューコントローラー/シーンに移動する

  5. 5

    プログラムでルート ビューをビュー コントローラーに追加すると、正しく配置されない

  6. 6

    プログラムでフラグメントに新しいビューを追加すると、シンボルエラーを解決できません

  7. 7

    プログラムでタブを切り替えるときにルートビューコントローラの変数をクリアする

  8. 8

    PageMenuビューコントローラーを動的に(プログラムで)追加する方法は?

  9. 9

    新しいコントローラーをiOSでプログラム的に提示すると、空白の画面のみが表示されます

  10. 10

    異なるビューコントローラ間でプログラム的に文字列を渡す方法(Swift)

  11. 11

    Eclipse PDE:プログラムでパッケージエクスプローラーに新しいプロジェクトをロードする方法は?

  12. 12

    コントローラの新しいインスタンスをプログラムで作成する

  13. 13

    グラデーションビューがプログラムで迅速に機能しない

  14. 14

    SwiftUIでプログラムで別のビューに切り替える方法(ボタンを押さずに)

  15. 15

    プログラムで初期ビューコントローラーをタブコントローラースイフト2に設定

  16. 16

    カスタムJavaビュークラスをRelativeLayoutにプログラムでロードする方法

  17. 17

    ビューコントローラの外部でプログラムでビューを作成する方法

  18. 18

    新しいナビゲーションコントローラーの順序/スタックをプログラムで定義しますか?

  19. 19

    ConstraintLayoutにプログラムでビューを追加します

  20. 20

    合金のスクロールビューにプログラムでビューを追加する方法

  21. 21

    プログラムでUIStackViewにビューを追加する

  22. 22

    プログラムでビューをUIStackViewに追加する

  23. 23

    プログラムでビューに制約を追加する

  24. 24

    プログラムでCSSクラスのプロパティを新しいクラスにコピーする

  25. 25

    プログラムで調整した後、スクロール中にビューを変更するListView

  26. 26

    プログラムで同じビューコントローラにセグエしますか?

  27. 27

    プラットフォームに依存しないプロセスをプログラムで開始する

  28. 28

    プログラムでEmberに新しいルートを作成する

  29. 29

    プログラムでビューをUIActivityIndicatorに置き換える

ホットタグ

アーカイブ