从故事板实例化视图控制器和创建它的新实例之间的功能区别是什么?例如:

#import "SomeViewController.h"

...

SomeViewController *someViewController = [SomeViewController new];

#import "SomeViewController.h"

...

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];

SomeViewController *someViewController = [storyboard instantiateViewControllerWithIdentifier:@"SomeViewController"];

在这两种情况下,someViewController实际上是一回事吗?

推荐答案

主要区别在于如何实例化UIViewController的子视图.

在第二种情况下,您在故事板中创建的所有视图都将自动为您实例化,并且所有出口和操作都将按照您在故事板中的指定进行设置.

在第一种情况下,这些都没有发生;你只需要得到原始物体.您需要分配和实例化所有子视图,使用约束或其他方式进行布局,并自己连接所有的出口和操作.Apple recommends通过重写UIViewControllerloadView方法来实现这一点.

Objective-c相关问答推荐

恢复 iOS7 之前的 UINavigationController pushViewController 动画

错误无法使 UICollectionElementKindCell 类型的视图出列

如何复制 .xib 文件?

iOS performSelectorOnMainThread 有多个参数

在可可中的字符串上使用 MD5 哈希?

iOS - 应用程序关闭时的核心位置和地理围栏

捕获组在 NSRegularExpression 中不起作用

Objective-C (cocoa) 等价于python的endswith/beginswith

如果用户禁用了应用程序的推送,是否可以进行静默远程通知?

如何在另一个视图中获取视图的框架?

Interface Builder 中的 IBOutletCollection 集排序

如何隐藏/显示导航栏中的右键

如何从 CGPoint 和 CGSize 创建 CGRect?

我可以设置 `UILabel` 的 `attributedText` 属性吗

从 UIImage 获取 Exif 数据 - UIImagePickerController

100% 不透明度 UILabel 超过 50% 不透明度背景(UIView?)

如何在 Objective-C 中添加具有自己的 UIViewController 的子视图?

AppDelegate 的当前视图控制器?

如何获得设备的比例因子?

将 Xcode 组创建为文件系统文件夹的工作流程