2017-06-28 15 views
0

私はストーリーボードにログイン/パスワードコントローラを設計しました。テキストフィールドは、有名なctrl +ドラッグでコントローラにリンクされています。ストーリーボードとuicontrollersを再利用

ストーリーボード+コントローラをアプリのどこかに再利用する方法はありますか?たとえば、設定メニューからログインを変更できるようにしたいのですが、新しいクラスを作成してストーリーボード表現を複製する必要はありません。

この場合、既に行ったことを再利用するためのベストプラクティスは何ですか?

+0

あなたは 'self.storyboard .instantiateViewController( "StoryboardIdentifier" withIdentifier)を使用して、それを再利用することができます! ClassType'。 –

答えて

1

これは、View Controllerの識別子が使用されるものです。 ストーリーボードで、LoginViewControllerの識別子を設定してから、LoginViewControllerを提示するか、ナビゲーションスタックにプッシュするだけです。あなたのコードは次のようになります。

let storyboard = UIStoryboard(name: "yourStoryboardName", bundle: nil) 
let loginViewController = storyboard.instantiateViewController(withIdentifier: "loginViewController") as! LoginViewController 

// If you are in a navigation controller: 
self.navigationController?.pushViewController(loginViewController, animated: true) 

// If you just want to present a new view: 
self.present(loginViewController, animated: true, completion: nil) 

この方法で、あなたは、識別子「loginViewController」のストーリーボードに指定されたレイアウトを持つ新しいビューコントローラを提示/プッシュします。 そのビューコントローラ内のすべてのテキストフィールドとボタンは、ビューコントローラ用に指定されたクラスで処理する必要があります。この場合は、LoginViewControllerにする必要があります。

0

もちろん可能です。私はこのコードを使用しています。 試してみてください。

のObjective-C:として?:

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:storyBoardName bundle:nil]; 
UIViewController *upcomingViewController = [storyBoard instantiateViewControllerWithIdentifier: storyBoardID]; 
UINavigationController *controller = [[UINavigationController alloc] initWithRootViewController:upcomingViewController]; 
関連する問題