首先开网
导入MJExtension。MBProgressHUD FMDB AFNetworking
SDWebImage
//viewcontroll.m
#import “ViewController.h”
#import “NewsTableViewCell.h”
#import <AFNetworking.h>
#import “MJExtension.h”
#import “WebViewController.h”
#import “CollectViewController.h”
#import “MBProgressHUD.h”
@interface ViewController ()<UITableViewDelegate , UITableViewDataSource>
@property(nonatomic , strong)UITableView *table;
@property(nonatomic , strong)NSMutableArray *dataSource;
@end
static NSString *oj = @“cell”;
@implementation ViewController
-
(void)viewDidLoad {
[super viewDidLoad];self.title = @“新闻”;
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@“收藏” style:UIBarButtonItemStyleDone target:self action:@selector(click)];
self.table = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStylePlain];
self.table.delegate = self;
self.table.dataSource = self;
[self.view addSubview:self.table];// 注册单元格
[self.table registerNib:[UINib nibWithNibName:@“NewsTableViewCell” bundle:nil] forCellReuseIdentifier:oj];[self loadData];
}
// 显示提示文本
-(void)showMBHudWithMessage:(NSString *)msg{
MBProgressHUD *hud = [[MBProgressHUD alloc]initWithView:self.view];
// 设置文本的提示样式
hud.mode = MBProgressHUDModeIndeterminate;
// 自动从父视图移除
hud.removeFromSuperViewOnHide = YES;
hud.labelText = msg;
[self.view addSubview:hud];
[hud show:YES];
[hud hide:YES afterDelay:2.0];
}
-(void)loadData{
// 显示一个等待指示器
MBProgressHUD *hud = [[MBProgressHUD alloc]initWithView:self.view];
hud.removeFromSuperViewOnHide = YES;
[self.view addSubview:hud];
[hud show:YES];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager POST:@"http://v.juhe.cn/toutiao/index?key=67968aeebf1f4e3b6170f7217b6f3cdb" parameters:self progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSDictionary *dict = responseObject;
self.dataSource = [NewsModel mj_objectArrayWithKeyValuesArray:dict[@"result"][@"data"]];
dispatch_async(dispatch_get_main_queue(), ^{
[self.table reloadData];
});
NSLog(@"数据请求成功");
// 隐藏等待指示器
[hud hide:YES];
[self showMBHudWithMessage:@"加载成功"];
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"数据请求失败");
}];
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return self.dataSource.count;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NewsTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:oj];
[cell loadData:self.dataSource[indexPath.row]];
return cell;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 100;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[self.table deselectRowAtIndexPath:indexPath animated:YES];
WebViewController *web = [[WebViewController alloc]init];
NewsModel *mod = self.dataSource[indexPath.row];
web.urlstring = mod;
[self.navigationController pushViewController:web animated:YES];
}
-(void)click{
CollectViewController *collect = [[CollectViewController alloc]init];
[self.navigationController pushViewController:collect animated:YES];
}
在跳转后的显示详情。
//Web.h
#import <UIKit/UIKit.h>
#import “NewsModel.h”
NS_ASSUME_NONNULL_BEGIN
@interface WebViewController : UIViewController
@property(nonatomic , strong)NewsModel *urlstring;
@end
NS_ASSUME_NONNULL_END
//web.m======
#import “WebViewController.h”
#import <WebKit/WebKit.h>
#import “SqliteModel.h”
@interface WebViewController ()
@end
@implementation WebViewController
-
(void)viewDidLoad {
[super viewDidLoad];self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@“收藏” style:UIBarButtonItemStyleDone target:self action:@selector(collect)];
WKWebView *web = [[WKWebView alloc]initWithFrame:self.view.frame];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:self.urlstring.url]];
[web loadRequest:request];
[self.view addSubview:web];
}
// 添加
-(void)collect{
[[SqliteModel initData]initSql];
[[SqliteModel initData]addData:self.urlstring];
}
-=-=-=-=-=-=-=-=//曾删该查
#import “CollectViewController.h”
#import “WebViewController.h”
#import “NewsTableViewCell.h”
#import “SqliteModel.h”
@interface CollectViewController ()<UITableViewDelegate , UITableViewDataSource>
@property(nonatomic , strong)UITableView *table;
@property(nonatomic , strong)NSMutableArray *dataSource;
@end
static NSString *oj = @“cell”;
@implementation CollectViewController
-
(void)viewDidLoad {
[super viewDidLoad];self.title = @“收藏列表”;
self.table = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStylePlain];
self.table.delegate = self;
self.table.dataSource = self;
[self.view addSubview:self.table];// 注册单元格
[self.table registerNib:[UINib nibWithNibName:@“NewsTableViewCell” bundle:nil] forCellReuseIdentifier:oj];
}
// 视图即将显示的时候
-(void)viewWillAppear:(BOOL)animated{
[[SqliteModel initData]initSql];
self.dataSource = [[SqliteModel initData]inquireArr];
[self.table reloadData];
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return self.dataSource.count;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NewsTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:oj];
[cell loadData:self.dataSource[indexPath.row]];
return cell;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 100;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[self.table deselectRowAtIndexPath:indexPath animated:YES];
WebViewController *web = [[WebViewController alloc]init];
NewsModel *mod = self.dataSource[indexPath.row];
web.urlstring = mod;
[self.navigationController pushViewController:web animated:YES];
}
// 删除
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
[[SqliteModel initData]initSql];
[[SqliteModel initData]deletData:[self.dataSource[indexPath.row]NewsID]];
// 删除数据
[self.dataSource removeObject:self.dataSource[indexPath.row]];
[self.table reloadData];
}