Ios 重用情节提要和脚本

Ios 重用情节提要和脚本,ios,swift,uiviewcontroller,storyboard,Ios,Swift,Uiviewcontroller,Storyboard,我在故事板中设计了一个登录/密码控制器。文本字段通过著名的ctrl+drag链接到控制器 是否有一种方法可以在应用程序中的其他地方重用故事板+控制器。例如,我想让用户能够从设置菜单更改其登录名,而不必创建新类并克隆其情节提要表示 在这种情况下,重用我已经完成的工作的最佳实践是什么?这就是视图控制器标识符的用途。 在故事板中,为LoginViewController设置一个标识符,然后,您只需显示LoginViewController或将其推送到导航堆栈中。您的代码应该如下所示: let stor

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

是否有一种方法可以在应用程序中的其他地方重用故事板+控制器。例如,我想让用户能够从设置菜单更改其登录名,而不必创建新类并克隆其情节提要表示


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

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

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

,当然可以。我正在使用这个代码。 尝试:

目标-C:

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

当然可以。我正在使用这个代码。 尝试:

目标-C:

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

您可以使用
self.storyboard?.instanceeviewcontroller(带标识符:“StoryboardIdentifier”)将其重用为!ClassType
。您可以使用
self.storyboard?重用它。实例化eviewController(带有标识符:“StoryboardIdentifier”)作为!类类型