重用故事板和uicontrollers

时间:2017-06-28 10:36:08

标签: ios swift uiviewcontroller storyboard

我在故事板中设计了一个登录/密码控制器。文本字段通过着名的ctrl + drag链接到控制器。

有没有办法在应用程序中的其他地方重用storyboard + controller。例如,我想让用户能够从设置菜单更改他的登录,我不想创建新类并克隆其故事板表示。

在这种情况下,重用我已经完成的工作的最佳做​​法是什么?

2 个答案:

答案 0 :(得分:2)

这是视图控制器的标识符用于的目的。 在故事板中,为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

答案 1 :(得分:0)

你可以。我正在使用此代码。 尝试:

<强>目的-C:

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:storyBoardName bundle:nil];
UIViewController *upcomingViewController = [storyBoard instantiateViewControllerWithIdentifier: storyBoardID];
UINavigationController *controller = [[UINavigationController alloc] initWithRootViewController:upcomingViewController];