您的位置:首页 > 产品设计 > UI/UE

UITableView的使用和点击每个cell跳转到其他controller优化

2015-08-31 17:07 501 查看
一、需要一个NSObject类,该类代码如下

#import <Foundation/Foundation.h>
@interface MJSampleIndex :
NSObject
@property (nonatomic,
copy) NSString *title; //描述该类的title
@property (nonatomic,
assign) Class controllerClass; //跳转到的controller
+ (instancetype)sampleIndexWithTitle:(NSString *)title controllerClass:(Class)controllerClass; //初始化title和controller
@end

#import "MJSampleIndex.h"

@implementation MJSampleIndex
+ (instancetype)sampleIndexWithTitle:(NSString *)title controllerClass:(Class)controllerClass
{
MJSampleIndex *si = [[self
alloc] init];
si.title = title;
si.controllerClass = controllerClass;
return si;
}
@end
二、UITableViewController方法
实现三个方法:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
//tableview总行数
{
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath
*)indexPath //根据行数绘制tableviewcell
{
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
//点击每个cell执行的事件
{
}

#import "MJSampleIndexViewController.h"
#import "MJSampleIndex.h"
#import "MJTableViewController.h"
#import "MJCollectionViewController.h"

NSString *const MJSampleIndexCellIdentifier =
@"Cell";

@interface MJSampleIndexViewController ()
{
NSArray *_sampleIndexs;
}
@end

@implementation MJSampleIndexViewController

- (void)viewDidLoad
{
[super
viewDidLoad];

self.title =
@"快速集成下拉刷新";
self.navigationItem.backBarButtonItem = [[UIBarButtonItem
alloc] initWithTitle:@"返回"
style:UIBarButtonItemStyleBordered
target:nil
action:nil];
// 1.注册cell
[self.tableView
registerClass:[UITableViewCell
class] forCellReuseIdentifier:MJSampleIndexCellIdentifier];
// 2.初始化数据
MJSampleIndex *si1 = [MJSampleIndex
sampleIndexWithTitle:@"tableView刷新演示"
controllerClass:[MJTableViewController
class]];
MJSampleIndex *si2 = [MJSampleIndex
sampleIndexWithTitle:@"collectionView刷新演示"
controllerClass:[MJCollectionViewController
class]];
_sampleIndexs =
@[si1, si2];
}

#pragma mark - Table view data source
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return
_sampleIndexs.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath
*)indexPath
{
UITableViewCell *cell = [tableView
dequeueReusableCellWithIdentifier:MJSampleIndexCellIdentifier
forIndexPath:indexPath];
// 1.取出模型
MJSampleIndex *si =
_sampleIndexs[indexPath.row];
// 2.赋值
cell.textLabel.text = si.title;
return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// 1.取出模型
MJSampleIndex *si =
_sampleIndexs[indexPath.row];

// 2.创建控制器
UIViewController *vc = [[si.controllerClass
alloc] init];
vc.title = si.title;

// 3.跳转
[self.navigationController
pushViewController:vc animated:YES];
}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: