Ios 目标C-使用导航推送调用UICollectionview

Ios 目标C-使用导航推送调用UICollectionview,ios,objective-c,uicollectionview,uinavigationcontroller,Ios,Objective C,Uicollectionview,Uinavigationcontroller,我实现的UICollectionView没有脚本或xib文件。 当前,我的firstviewcontroller嵌入在导航控制器中,单击按钮时调用collectionviewcontroller 这是我在firstviewcontroller.m中的代码 UICollectionViewFlowLayout *layout=[[UICollectionViewFlowLayout alloc] init]; layout.sectionInset = UIEdgeInsetsMake(20, 2

我实现的UICollectionView没有脚本或xib文件。 当前,我的firstviewcontroller嵌入在导航控制器中,单击按钮时调用collectionviewcontroller

这是我在firstviewcontroller.m中的代码

UICollectionViewFlowLayout *layout=[[UICollectionViewFlowLayout alloc] init];
layout.sectionInset = UIEdgeInsetsMake(20, 20, 20, 20);
layout.minimumInteritemSpacing = 0;
layout.minimumLineSpacing = 20;

CollectionViewController *ivc = [[CollectionViewController alloc] initWithCollectionViewLayout:layout];
[self.navigationController pushViewController:ivc animated:NO];
然而,我不想在这里有布局代码。我想把它放在collectionviewcontroller.m的某个地方。我想可能是在电视里吧

但是我必须有初始化collectionviewcontroller的布局才能推送视图。
有更好的方法吗?任何帮助都将不胜感激

您可以在按下viewController后设置FlowLayout,如下代码所示,如果这仍然无法解决您的问题,请通知我

@implementation UICollectionViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    UICollectionViewFlowLayout *layout=[[UICollectionViewFlowLayout alloc] init];
    layout.sectionInset = UIEdgeInsetsMake(20, 20, 20, 20);
    layout.minimumInteritemSpacing = 0;
    layout.minimumLineSpacing = 20;

    [self setCollectionViewLayout:layout];
}

请一次标记一个语言目标C或Swift。这样用户就可以理解他们必须用哪种语言回答。这正是我正在做的。。我想要的是将布局代码移动到collectionviewcontroller.m中以使其看起来一致(将所有与UICollectionView相关的代码保留在一个位置)您的意思是添加另一个布局代码吗?所以我会有两个布局(一个在推送视图之前,一个在viewDidLoad中)?删除推送之前添加的布局代码,只在viewDidLoadOk中添加一个。那么我应该如何调用collectionviewcontroller进行导航推送?Segue?通道布局无