【TabBar嵌套Navigation案例-产品推荐页面-UICollectionView-结合xib使用 Objective-C语言】
一、接下来,我们来说这个产品推荐页面
1.首先呢,它是一个CollectionViewController,当我点击这个产品推荐的时候,
这个Cell的时候,我要跳到一个CollectionViewController,
所以呢,我们需要先找到产品推荐,然后给它去添加一个targetVC,然后给它push到一个产品推荐的页面,先把这一步做了啊,然后呢,产品推荐,这个cell,在这个Setting里面,在最后一组,倒数第二个,产品推荐,然后,给它配置一个targetVC啊,
command + C、command + V、
那这个时候,我要跳到一个CollectionViewController,
所以呢,我要先新创建一个,
New一个File,
然后,继承自UICollectionViewController,然后,叫产品,Product,
HMProductController,
这个名字,拿过来,
来到Setting,targetVC,command + V、
command + R,这个时候,当我点击产品推荐的时候,崩了,
这个时候,是因为我没有layout参数啊,还是那个问题,不是说你控制器的名字错了啊,是因为你没有layout参数,
CollectionView里边,需要一个layout,才可以,
那么,这个时候,我就要找到你创建控制器的地方,在SettingController里边,点击cell的时候,didSelect,
那你这个Controller创建的时候,是用init创建的,直接在这儿写initWithLayout,行吗,肯定是不行的吧,
那我们应该怎么着去做,判断?想想我们之前复用Setting的时候,让Setting变成一个组的样式,我们怎么着去做的,是不是重写的init方法,
也就是说,这个CollectionViewController,也是一样的,
你创建这个ProductController,的时候,是调用init的方法,那我就把init的时候,给你去写,调用super的initWithLayout方法,就可以了,
然后呢,这个时候,它一定会去调用Product里面的init方法,
它一定会去调用这个方法,
在这个里边啊,我们说,如果你return的是super的init,
那就相当于是跟什么都没写一样,
那你直接去写initWithLayout,就行了,
initWithCollectionViewLayout:(UICollectionViewLayout *),
然后呢,在这一块儿,在上面,再去创建一个Layout,
然后呢,我们在这儿啊,去创建一个layout,
// 创建layout
然后来一个,UICollectionViewFlowLayout,
UICollectionViewFlowLayout *layout =
UICollectionViewFlowLayout *layout = [UICollectionViewFlowLayout alloc ] init];
然后,再把这个layout,传过来,
然后,我们说,你init的时候,去调用的这个流水布局,那,我担心我创建的时候,是用的initWithLayout的话,我到时候也要用这个布局,怎么办,所以呢,我再把这个方法,也重写一下,
相当于是,不管你传什么布局,我都用这一个布局,
把这个方法,也写一下,我这样来写,我把这一句话啊,
拿到下面来,
然后,return的时候,直接调用self的,额,不能这样写啊,还要去传一个layout,
我把这一句话,写到上面来,然后,在下面,直接调用上面的方法,
return [self init];
然后,把这个方法,直接在这儿写,就可以了,我们在上面这个方法里,接着来写,
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/148308.html
如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!