多个控制器使用一个 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的主要内容,如果未能解决你的问题,请参考以下文章