小编kpr*_*fic的帖子

故事板中的外部对象

Apple已经为我们提供了故事板,我从一开始就追随它的'进化,它有一些优点和缺点,但如果你将它与oldschool"xib"文件进行比较,这肯定是一个"未来". ..

我在这里意识到的是一种叫做"外部对象"的东西.当使用标准的"xibs"时,我们总是可以从IB对象库(右侧窗格)中拖放两种特殊类型的对象

"文件所有者"是此"外部对象"的示例.

我们能够将一个或多个ExternalObject拖放到我们的xib文件中,并通过使用此UINib API实例化此类ViewController将其连接到某个外部对象:

- (NSArray *)instantiateWithOwner:(id)ownerOrNil options:(NSDictionary *)optionsOrNil;
Run Code Online (Sandbox Code Playgroud)

......是的,有可能,文件:

如果nib文件包含除File文件所有者代理对象之外的任何代理对象,则可以使用options字典为这些代理指定运行时替换对象.在该字典中,添加UINibExternalObjects键并将其值设置为包含任何代理对象(键)的名称以及要在其位置使用的真实对象的字典.代理对象的名称是您在Interface Builder检查器窗口的"名称"字段中为其分配的字符串.

现在谈到故事板 - 对象检查器中没有外部对象.这是有道理的,因为我没有找到任何允许我们将外部对象注入从故事板创建的视图控制器中的API.我们只有这个:

- (id)instantiateInitialViewController;

- (id)instantiateViewControllerWithIdentifier:(NSString *)identifier;
Run Code Online (Sandbox Code Playgroud)

所以没有办法通过我们的"选项".

然而...

在创建一个Swift项目之前,在Storyboard中没有外部对象(可能还有另一个因素可以在我的故事板中启用外部对象,我不确定).

因此,可以设置故事板允许我们将外部对象拖放到故事板中的设置.但是我们怎么能利用这个呢?如何从故事板加载视图控制器并挂钩这些代理对象?

objective-c storyboard xib nsbundle ios

5
推荐指数
1
解决办法
725
查看次数

标签 统计

ios ×1

nsbundle ×1

objective-c ×1

storyboard ×1

xib ×1