2017-01-31 11 views
1

私はチームと一緒に作業しており、ワークフローの最初の2つのビューはプログラムによって作成されています。私たちはその後、UI設計の一部を容易にするためにストーリーボードを使用すべきだと決めました。初期ビューコントローラはLoginControllerで、次にUserProfileViewControllerに接続します。私はストーリーボードの2番目のビューのUIを設計し、それをUserProfileViewControllerに接続させたいと考えています。どうすればいい?ストーリーボードのビューを最初のビューにすると機能します。そうでない場合は動作しません。プログラムされたViewControllerを、ストーリーボードで作成された新しいビューに接続するにはどうすればよいですか?

+1

使用セグエを提示する方法については別のポストです。すべてがUIViewControllerコードで作成されている場合は、単にIBで2つの*シーン*を必要とし、各シーンのアイデンティティを各コントローラに設定し、それらの間にセグを作成して名前を付けます。 – dfd

答えて

1

ストーリーボードにプログラムでプッシュしたい場合は、ここでSwiftで行う方法があります。

//Swift 3.0 
let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil) 
let controller = storyboard.instantiateViewController(withIdentifier: "someViewController") 
self.navigationController?.pushViewController(controller, animated: true) 

下記のリンクは、モーダルのViewController

//Swift 3.0 
let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil) 
let controller = storyboard.instantiateViewController(withIdentifier: "someViewController") 
self.present(controller, animated: true, completion: nil) 

Instantiate and Present a viewController in Swift

+0

あなたのコードは、新しいビューコントローラをモーダルで表示します。 「プッシュ」という用語は、ナビゲーションコントローラのスタックにビューコントローラを追加するために使用されるため、ここで使用する用語は間違っています。 "あなたがストーリーボードからビューコントローラを作成し、それをモーダルで表示したい場合は、次のコードを使用してください"と言わなければなりません。ナビゲーションスタックにプッシュしたい場合は、 'pushViewController:animated:' –

+0

@DuncanC、私は私の答えを編集しました。 – monolith

+0

あなたの答えは一貫しています。これは良いことです。あなたが提供するリンクがモーダルなpresentViewControllerを表示し、編集された回答がナビゲーションコントローラのプッシュを提供するので、プッシュと現在のバリアントの両方を選択肢として提供した方が良いでしょう。 –

関連する問題