1. ホーム
  2. ios

[解決済み] Swiftのプログラムで別のビューコントローラ/シーンに移動する

2023-02-23 17:28:31

質問

以下のコードを使用して、別のViewControllerにプログラム的に移動しています。これは正常に動作しますが、何らかの方法で navigation bar . どのように私はこれを修正するのですか? (を埋め込むことでナビゲーションバーが作成されます)。 ViewController の中に navigation controller を追加しました。)

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)

let nextViewController = storyBoard.instantiateViewControllerWithIdentifier("nextView") as NextViewController
self.presentViewController(nextViewController, animated:true, completion:nil)

どのように解決するのですか?

スウィフト5

デフォルトのモーダル表示スタイルは、カードです。これは、前のビューコントローラを一番上に表示し、ユーザーは提示されたビューコントローラをスワイプで移動することができます。

古いスタイルを保持するには、提示するビューコントローラをこのように変更する必要があります。

newViewController.modalPresentationStyle = .fullScreen

これは、プログラムで作成されたコントローラ、ストーリーボードで作成されたコントローラのいずれにおいても同じです。

スウィフト3

プログラムで作成したControllerで

プログラムで作成したコントローラに移動したい場合は、次のようにします。

let newViewController = NewViewController()
self.navigationController?.pushViewController(newViewController, animated: true)

Controllerで作成したStoryBoardで

StoryBoard上のIdentifier "newViewController"を持つControllerに移動したい場合は、以下のようにします。

let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let newViewController = storyBoard.instantiateViewController(withIdentifier: "newViewController") as! NewViewController
        self.present(newViewController, animated: true, completion: nil)