怎么创建一个view controller

 我来答
小炫马扎
高粉答主

2016-02-06 · 关注我不会让你失望
知道顶级答主
回答量:3.4万
采纳率:86%
帮助的人:4696万
展开全部
方法/步骤:
创建工程项目和视图控制器
创建工程项目UICollectionView,新建一个UIViewController。选中工程,右键-New File…选择“Cocoa Touch Class”-Next,给个合理的名称ViewController,再Next完成。
在AppDelegate.m文件包含#import "ViewController.h"。添加代码:
UINavigationController *navC = [[UINavigationController alloc]initWithRootViewController:[[ViewController alloc]init]];
self.window.rootViewController = navC;//将navC设置为根视图控制器。
修改一下ViewController的显示样式,执行编译,run一下,效果如图。

创建自定义UICollectionViewCell
选中工程,右键-New File…选择“Cocoa Touch Class”-Next,选择继承于UICollectionViewCell类,给个合理的名称CollectionViewCell,再Next完成。
1、自定义所需要的控件,比如UIImageView:
@property(nonatomic ,strong)UIImageView *imgView;
2、初始化控件,在方法- (id)initWithFrame:(CGRect)frame中实现:
self.imgView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 30, 150, 140)];
self.imgView.backgroundColor = [UIColor groupTableViewBackgroundColor];
[self addSubview:self.imgView];

创建UICollectionView及添加代理
1、在ViewController.h添加事件代理和数据源代理<UICollectionViewDataSource,UICollectionViewDelegate>。
2、在ViewController.m创建UICollectionView。需要使用UICollectionViewFlowLayout来创建,使用方法- (instancetype)initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout;如果只用普通的init方法,是实现不了的。
4、代理授权并添加至视图。
self.collectionView.delegate = self;
self.collectionView.dataSource = self;
[self.view addSubview:self.collectionView];

把UICollectionViewCell添加到UICollectionView内
1、注册CollectionViewCell,添加cell需要在这里实现。方法:- (void)registerClass:(Class)cellClass forCellWithReuseIdentifier:(NSString *)identifier;
2、添加代理方法
//定义展示的UICollectionViewCell的个数
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section;

//定义展示的Section的个数
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView;

//每个UICollectionView展示的内容
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;

设置UICollectionView中的属性
//定义每个UICollectionView 的大小(返回CGSize:宽度和高度)
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath;

//定义每个UICollectionView 的间距(返回UIEdgeInsets:上、左、下、右)
-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section;
//定义每个UICollectionView 纵向的间距
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section;

//UICollectionView被选中时调用的方法
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath;
匿名用户
推荐于2016-09-25
展开全部
1、新建一个Empty Application,只选Use Automatic Reference Counting,Use Core Data和Include Unit Tests不选。
2、Command+N 新建文件,选Cocoa Touch UIViewController subclass,SubClass of UIViewController,勾选with XIB for user interface(当然你也可以再建)。我这输的名字是MainViewController,最终生成MainViewController.h MainViewController.m MainViewController.xib三个文件。
3、打开(前缀)AppDelegate.h,代码如下:

[objc] view plaincopy
#import <UIKit/UIKit.h>
#import "MainViewController.h"
@interface BIDAppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (strong,nonatomic) MainViewController * controller;

@end

AppDelegate.m,修改(bool)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法:

[objc] view plaincopy
- (bool)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.controller= [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];

UIView *mainView=self.controller.view;
CGRect mainViewFrame=mainView.frame;
mainViewFrame.origin.y+=[UIApplication sharedApplication].statusBarFrame.size.height;
//将y座标移到状态栏下
mainView.frame=mainViewFrame;
[self.window addSubview:mainView];
//载入

self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}

4、随便在MainViewController.xib中添加个控件,运行测试。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式