Skip to content

Commit c21b8bc

Browse files
committed
更加 MVC
1 parent ca9b261 commit c21b8bc

3 files changed

Lines changed: 76 additions & 0 deletions

File tree

KtTableView/KtTableView.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
E1621E101CBDF267003D9438 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E1621E0E1CBDF267003D9438 /* LaunchScreen.storyboard */; };
2222
E1621E1B1CBDF267003D9438 /* KtTableViewTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E1621E1A1CBDF267003D9438 /* KtTableViewTests.m */; };
2323
E1621E261CBDF267003D9438 /* KtTableViewUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = E1621E251CBDF267003D9438 /* KtTableViewUITests.m */; };
24+
E19B41191CC21555008A3E7F /* KtTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E19B41181CC21555008A3E7F /* KtTableViewController.m */; };
2425
E1EE5C9A1CBE791E0095688B /* UIView+KtExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = E1EE5C991CBE791E0095688B /* UIView+KtExtension.m */; };
2526
E1EE5C9D1CBE811C0095688B /* KtBaseTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = E1EE5C9C1CBE811C0095688B /* KtBaseTableView.m */; };
2627
/* End PBXBuildFile section */
@@ -71,6 +72,8 @@
7172
E1621E211CBDF267003D9438 /* KtTableViewUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = KtTableViewUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
7273
E1621E251CBDF267003D9438 /* KtTableViewUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KtTableViewUITests.m; sourceTree = "<group>"; };
7374
E1621E271CBDF267003D9438 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
75+
E19B41171CC21555008A3E7F /* KtTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KtTableViewController.h; sourceTree = "<group>"; };
76+
E19B41181CC21555008A3E7F /* KtTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KtTableViewController.m; sourceTree = "<group>"; };
7477
E1EE5C981CBE791E0095688B /* UIView+KtExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+KtExtension.h"; sourceTree = "<group>"; };
7578
E1EE5C991CBE791E0095688B /* UIView+KtExtension.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+KtExtension.m"; sourceTree = "<group>"; };
7679
E1EE5C9B1CBE811C0095688B /* KtBaseTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KtBaseTableView.h; sourceTree = "<group>"; };
@@ -115,6 +118,8 @@
115118
E108B2B61CBE1F6500191E0B /* KtTableViewBaseItem.m */,
116119
E1EE5C9B1CBE811C0095688B /* KtBaseTableView.h */,
117120
E1EE5C9C1CBE811C0095688B /* KtBaseTableView.m */,
121+
E19B41171CC21555008A3E7F /* KtTableViewController.h */,
122+
E19B41181CC21555008A3E7F /* KtTableViewController.m */,
118123
);
119124
name = KtBaseTableViewController;
120125
sourceTree = "<group>";
@@ -326,6 +331,7 @@
326331
isa = PBXSourcesBuildPhase;
327332
buildActionMask = 2147483647;
328333
files = (
334+
E19B41191CC21555008A3E7F /* KtTableViewController.m in Sources */,
329335
E108B2B41CBE1C9100191E0B /* KtMainTableViewDataSource.m in Sources */,
330336
E108B2AB1CBE14C300191E0B /* KtTableViewDataSource.m in Sources */,
331337
E108B2B71CBE1F6500191E0B /* KtTableViewBaseItem.m in Sources */,
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
//
2+
// KtTableViewController.h
3+
// KtTableView
4+
//
5+
// Created by baidu on 16/4/16.
6+
// Copyright © 2016年 zxy. All rights reserved.
7+
//
8+
9+
#import <UIKit/UIKit.h>
10+
#import "KtBaseTableView.h"
11+
12+
@class KtTableViewDataSource;
13+
14+
@protocol KtTableViewControllerDelegate <NSObject>
15+
16+
@required
17+
- (void)createDataSource;
18+
19+
@end
20+
21+
@interface KtTableViewController : UIViewController<KtTableViewDelegate, KtTableViewControllerDelegate>
22+
23+
@property (nonatomic, strong) KtBaseTableView *tableView;
24+
@property (nonatomic, strong) KtTableViewDataSource *dataSource;
25+
@property (nonatomic, assign) UITableViewStyle tableViewStyle; // 用来创建 tableView
26+
27+
- (instancetype)initWithStyle:(UITableViewStyle)style;
28+
29+
@end
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
//
2+
// KtTableViewController.m
3+
// KtTableView
4+
//
5+
// Created by baidu on 16/4/16.
6+
// Copyright © 2016年 zxy. All rights reserved.
7+
//
8+
9+
#import "KtTableViewController.h"
10+
#import "KtTableViewDataSource.h"
11+
12+
@implementation KtTableViewController
13+
14+
- (instancetype)initWithStyle:(UITableViewStyle)style {
15+
self = [super init];
16+
if (self) {
17+
[self createDataSource];
18+
}
19+
return self;
20+
}
21+
22+
// 这个方法实际上要被子类重写,生成对应类型的 data source
23+
- (void)createDataSource {
24+
self.dataSource = [[KtTableViewDataSource alloc] init];
25+
}
26+
27+
- (void)viewDidLoad {
28+
[super viewDidLoad];
29+
[self createTableView];
30+
}
31+
32+
- (void)createTableView {
33+
if (!self.tableView) {
34+
self.tableView = [[KtBaseTableView alloc] initWithFrame:self.view.bounds style:self.tableViewStyle];
35+
self.tableView.ktDelegate = self;
36+
self.tableView.ktDataSource = self.dataSource;
37+
[self.view addSubview:self.tableView];
38+
}
39+
}
40+
41+
@end

0 commit comments

Comments
 (0)