多个控制器使用一个 xib

Posted

技术标签:

【中文标题】多个控制器使用一个 xib【英文标题】:Multiple controllers use one xib 【发布时间】:2013-10-22 09:02:34 【问题描述】:

尝试在网上搜索类似的东西,但没有运气。我有许多不同的视图控制器,但每个人都有一个表视图。所以我的问题是: 我可以拥有一个带有 tableview 的 xib 文件,所有这些控制器都可以使用它吗?如果是的话,一个如何做的例子将是超级的!提前致谢!

【问题讨论】:

【参考方案1】:

是的,你可以。 您可以使用以下方法实例化 xib 的***对象:

NSArray *topLevelObjects = [[UINib nibWithNibName:@"YourNibNameHere" bundle:nil] instantiateWithOwner:self options:nil]

这将为您获取该 xib 中的所有对象(最顶层视图和/或手势识别器等),然后您找到所需的对象(或者如果只有一个,它将是唯一的)并添加它作为一个子视图。

UIView *view = [topLevelObjects lastObject];
[self.view addSubview:view];

【讨论】:

感谢您的反馈,但我真正想要的是这样的:我有一个具有 tableview 的基类,然后执行类似 FirstViewController *c = [FirstViewController alloc] initWithNibName:@ “baseNibName”捆绑:无]; SecondViewController *sc = [SecondViewController alloc] initWithNibName:@"baseNibName" bundle:nil];这可能吗? 您可以让 Xib 包含您喜欢的任何视图,但是在每个 ViewController 中,每当您创建视图控制器的视图时,您都可以使用我提供的代码来加载该 xib 的视图。

以上是关于多个控制器使用一个 xib的主要内容,如果未能解决你的问题,请参考以下文章

在xib中使用多个时间的一个视图

使用同一个 XIB 的多个 Swift 故事板项目

如何在多个 .xib 文件之间执行展开转场(不使用情节提要)

需要帮助将多个字符串从一个 .XIB 文件传输到视图控制器

具有多个 xib 的 PageControl?

具有相同 XIB 单元格和按钮的多个集合视图