現在、以下の新しいストーリーボードでviewControllerを表示しています。
var storyboard : UIStoryboard = UIStoryboard(name: AccountStoryboard, bundle: nil)
var vc : WelcomeViewController = storyboard.instantiateViewControllerWithIdentifier("WelcomeID") as WelcomeViewController
vc.teststring = "hello"
self.presentViewController(vc, animated: true, completion: nil)
ただし、これにより、組み込みのNavigation ControllerなしでViewControllerが表示されます。 「WelcomeID」をストーリーボード内のナビゲーションコントローラーに変更しようとしましたが、成功しませんでした。
私はこれをObjective -Cで動作させましたが、Swiftに変換する方法がわかりません:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"SetupStoryboard" bundle:nil];
UINavigationController *navigationController1 = [storyboard instantiateInitialViewController];
navigationController1.modalPresentationStyle = UIModalPresentationFormSheet;
navigationController1.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
WelcomeViewController *vc = (WelcomeViewController *)navigationController1.viewControllers[0];
vc.teststring = @"Hello";
[self presentViewController:navigationController1 animated:YES completion:nil];
どうすれば迅速にこれを行うことができますか?
あなたは間違いなく正しい軌道に乗っています。残念ながら、ストーリーボードIDでView Controllerを参照すると、何かに埋め込まれているという事実は無視されます。組み込みの何かにセグエする場合も同じことが当てはまります。目的のView Controllerは、通常は関心のあるコントローラではなく、埋め込みコントローラになります。 Objective-C。したがって、これは単なる構文移植の演習です。
編集:文字列でストーリーボード名を定義する
let storyboard : UIStoryboard = UIStoryboard(name: "AccountStoryboard", bundle: nil)
let vc : WelcomeViewController = storyboard.instantiateViewControllerWithIdentifier("WelcomeID") as WelcomeViewController
vc.teststring = "hello"
let navigationController = UINavigationController(rootViewController: vc)
self.presentViewController(navigationController, animated: true, completion: nil)
または、埋め込みView ControllerにIDを付与し、代わりにインスタンス化することができます。
let secondViewController = self.storyboard?.instantiateViewControllerWithIdentifier("WelcomeID") as SecondViewController
self.navigationController?.pushViewController(secondViewController, animated: true)
クラス名はSecondCiewControllerです
@Chrisの回答は、Swiftの古いバージョンでうまく機能します。
Swift 3およびSwift 4を更新
let storyboard : UIStoryboard = UIStoryboard(name: "AccountStoryboard", bundle: nil)
let vc : WelcomeViewController = storyboard.instantiateViewController(withIdentifier: "WelcomeID") as! WelcomeViewController
vc.teststring = "hello"
let navigationController = UINavigationController(rootViewController: vc)
self.present(navigationController, animated: true, completion: nil)
ありがとう!!!
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "SalesVC") as! SalesVC
navigationController?.pushViewController(vc, animated: true)