Ios 带有xib的UICollectionViewController子类
我正在尝试创建一个自定义的Ios 带有xib的UICollectionViewController子类,ios,objective-c,xib,Ios,Objective C,Xib,我正在尝试创建一个自定义的UICollectionViewController子类 我使用Xcode的向导创建了它: 单击Finish后,我得到这个.xib文件: 当我尝试从另一个类调用它时,如下所示: MyCollectionViewController *myCollectionViewController = [MyCollectionViewController new]; [self addChildViewController:myCollectionViewControlle
UICollectionViewController
子类
我使用Xcode的向导创建了它:
单击Finish
后,我得到这个.xib
文件:
当我尝试从另一个类调用它时,如下所示:
MyCollectionViewController *myCollectionViewController = [MyCollectionViewController new];
[self addChildViewController:myCollectionViewController];
[self.view addSubview:myCollectionViewController.view];
我得到这个错误:
UICollectionView must be initialized with a non-nil layout parameter
如果我使用:
MyCollectionViewController *myCollectionViewController = [[MyCollectionViewController alloc] initWithCollectionViewLayout:[UICollectionViewFlowLayout new]];
它不会崩溃,但存在一些问题:
.xib
文件中,为什么需要CollectionViewLayout
如果在xib中指定了视图控制器的UI,则必须通过调用
[[MyCollectionViewController alloc]initWithNibName:@“MyCollectionViewController”inBundle:[NSBundle mainBundle]]
来实例化它(或者以任何方式获取捆绑包)。当您使用此构造函数时,视图控制器的出口将正确连接,布局将根据xib中的内容进行设置。xib大多是老式的,视图控制器更是如此。将它们用于视图,有时用于单元格。由于要创建视图控制器,请改用情节提要。这有一些优点:您可以在故事板中配置VC(及其视图);你可以使用自动布局;您可以将相关的视图控制器放在同一情节提要中
打开情节提要文件后,拖出一个新的UIViewController(本例中为UICollectionViewController),然后在第三个属性选项卡(通常位于右侧)上设置自定义类。我知道,但我无法轻松切换到情节提要。另外,整个项目应该有一个故事板?不,绝对不是每个项目一个。它们变得太不可维护、太笨拙、太难合并更改。我将其用于相关的风险投资,例如,使用“最近帐户”登录风险投资的帐户。一个项目中有几个。另外,您不必大量切换到故事板,您可以保留现有的XIB。