使用故事板 ID 从 Main.storyboard 初始化视图控制器有什么好处?

What are the advantages of initializing a view-controller from Main.storyboard using storyboard-ID?

我见过许多示例,其中 view-controller 使用 Main.storyboard 中的 storyboard-ID 初始化:

UIPageViewController *myPageViewController = [storyboard instantiateViewControllerWithIdentifier:@"PageViewControllerID"];

这样做有什么特别的好处,而不是只做旧的 alloc-init?

如果您选择使用情节提要,那么您要么请求初始视图控制器(或允许系统这样做),要么通过标识符请求视图控制器,要么触发一个 segue。通过标识符请求的好处是你可以用控制器做任何你想做的事。 Segues 比以前强大得多,现在基本上所有事情都可以直接完成,但可能会有一些你更喜欢的条件逻辑 运行 (这可能会触发一些 segues...)。

不过您不需要使用故事板。如果您愿意,可以在代码中创建所有内容,也可以继续使用 NIB 文件。当您使用自动布局并希望利用布局指南时,故事板会有所帮助。 99% 的时间使用情节提要比使用代码节省你的时间,也许 50% 的时间比使用 NIB 节省时间。