强大的IBOutlet零在XIB与多个视图



调用Bundle.main.loadNibNamed加载一个.xib文件,该文件包含(n(由多个UIView定义的一个UI的多个变体,实例化了我的子类的n个实例。

然后,我应用一个过滤表达式来选择.first(where: { $0.restorationIdentifier == <correct restoration ID>的正确变体。

在这个例子中,我的filter表达式正确地返回了我的.xib中的第五个UIView,但我的自定义类中的@IBOutlets连接到了实例化的第一个UIView,但我认为它立即被ARC否决了。

这导致我意外地没有IBOutlets。如何将IBOutlets连接到Bundle.main.loadNibBaned返回的正确(本例中为第5个(UIView

问题是loadNibNamed正在实例化您的所有视图,而您只是选择保留其中的一些视图。在这个过程中,IB出口是按照某种顺序分配的,这很可能不会导致你想要的对象最后被分配到一个出口。

我不认为一个nib文件能让你只实例化它的多个顶级对象中的一些。您需要将各种视图拆分为多个笔尖(并且只加载您需要的一个(,或者切换到使用Storyboard,允许您通过其标识符实例化特定对象。

相关内容

  • 没有找到相关文章

最新更新