#import "ViewController.h"
#import "AFNetworking.h"
@interface ViewController ()
{
? ? NSDictionary *_dic;
}
@property(nonatomic,strong)UITableView *Mytableview;
@end
#define JSON_URL @"http://127.0.0.1/1602C1.json"
#define XML_URL @"http://127.0.0.1/1602C1.xml"
@implementation ViewController
- (void)viewDidLoad
{
? ? [super viewDidLoad];
? ? //====二進制解析器======
? ? //初始化AF對象? (注意初始化解析器)
? ? AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
? ? // AFXMLParserResponseSerializer === SAX解析
? ? // AFJSONResponseSerializer === JSON解析? 類型(jsonkit)
? ? // AFHTTPResponseSerializer ==二進制解析==NsData類型
? ? //設置解析類型
? ? manager.responseSerializer = [[AFJSONResponseSerializer alloc]init];
//get請求? 1(字符串地址)2(是否需要傳參 {字典})3請求成功后自動回調(diào) 4(請求失敗自動回調(diào))
? ? [manager GET:JSON_URLparameters:nilsuccess:^(AFHTTPRequestOperation *operation,idresponseObject) {
?? ? ? ? //=====二進制解析我器 之JSON解析======
//? ? ? ? //如果是二進制解析器 則responseObject是NSData類型
//? ? ? ? NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:0 error:nil];
//? ? ? ? NSLog(@"===%@",dic);
//
//
? ? ? ? //=====二進制解析我器 之SAX解析======
//? ? ? ? NSXMLParser *parser = [[NSXMLParser alloc]initWithData:responseObject];
//
//? ? ? ? parser.delegate = self;
//
//? ? ? ? [parser parse];
//
?? ? ? ? ? //json解析器
? ? ? ? //類型轉換? 將id轉換為字典
? ? ? ? _dic = (NSDictionary *)responseObject;
? ? ? ? NSLog(@"%@",_dic);
? ? ? ? [self.Mytableview reloadData];
//? ? ? ? //sax解析器
//? ? ? ? NSXMLParser *parser = (NSXMLParser *)responseObject;
//? ? ? ? parser.delegate = self;
//? ? ? ? [parser parse];
//
? ? } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
? ? }];
? ? [self.view addSubview:self.Mytableview];
}
-(UITableView*)Mytableview
{
? ? if (!_Mytableview)
? ? {
? ? ? ? _Mytableview = [[UITableView alloc]initWithFrame:[UIScreen mainScreen].bounds style:UITableViewStyleGrouped];
? ? ? ? _Mytableview.delegate=self;
? ? ? ? _Mytableview.dataSource=self;
? ? }
? ? return _Mytableview;
}
-(NSInteger)numberOfSectionsInTableView:(UITableView*)tableView
{
? ? return _dic.allKeys.count;
}
-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
{
? ? NSString*key = [_dic.allKeysobjectAtIndex:section];
? ? return [[_dic objectForKey:key]count];
}
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
? ? staticNSString*s =@"asdfghj";
? ? UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:s];
? ? if(!cell)
? ? {
? ? ? ? cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:s];
? ? }
? ? NSString*key = [_dic.allKeysobjectAtIndex:indexPath.section];
? ? cell.textLabel.text = [[[_dic objectForKey:key]objectAtIndex:indexPath.row]objectForKey:@"name"];
? ? cell.detailTextLabel.text = [[[_dic objectForKey:key]objectAtIndex:indexPath.row]objectForKey:@"like"];
? ? returncell;
}
@end
//==================================
.h里
#import
@interface BaseViewController : UIViewController
// 創(chuàng)建表格屬性
@property (nonatomic,strong) UITableView *table;
// 創(chuàng)建數(shù)據(jù)數(shù)組
@property (nonatomic,strong) NSMutableArray *dataArray;
#pragma mark - 賦值根控制器
- (void)setTabbarVc:(UITabBarController*)tVc;
// 添加表格的方法
- (UITableView*)addTableView;
// 添加內(nèi)容數(shù)組的方法
- (NSMutableArray*)addDataArray;
// 添加導航條左側圖片按鈕
- (void)setleftNavgationItem;
// 添加導航條左側返回按鈕
- (void)setLeftBack;
.m里
#import "BaseViewController.h"
@interface BaseViewController ()
{
? ? UITabBarController *_tabbarVc;
}
@end
@implementationBaseViewController
- (void)viewDidLoad {
? ? [super viewDidLoad];
//? ? // 添加滑動效果
//? ? UIButton *leftItemBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 40, 40)];
//? ? // 添加點擊事件
//? ? [leftItemBtn addTarget:self action:@selector(leftClick:) forControlEvents:UIControlEventTouchUpInside];
//? ? // 設置裁剪
//? ? leftItemBtn.layer.cornerRadius = 20;
//? ? leftItemBtn.layer.masksToBounds = YES;
//? ? // 設置背景圖片
//? ? [leftItemBtn setBackgroundImage:[UIImage imageNamed:@"nav_itme_left"] forState:UIControlStateNormal];
//? ?
////? ? UIImage *leftItemImg = [UIImage imageNamed:@"nav_itme_left"];
//? ? self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:leftItemBtn];
}
// 設置表格set方法
- (UITableView*)addTableView{
? ? if(!_table) {
? ? ? ? // 初始化
? ? ? ? _table = [[UITableView alloc]initWithFrame:SCREEN_BOUNDS style:UITableViewStylePlain];
? ? ? ? // 設置代理
? ? ? ? _table.delegate=self;
? ? ? ? _table.dataSource=self;
? ? ? ? // 添加到主視圖
? ? ? ? [self.viewaddSubview:_table];
? ? }
? ? return _table;
}
// 設置內(nèi)容set方法
- (NSMutableArray*)addDataArray{
? ? if (!_dataArray) {
? ? ? ? _dataArray= [NSMutableArrayarray];
? ? }
? ? return _dataArray;
}
// 設置左側按鈕
- (void)setleftNavgationItem{
? ? // 添加滑動效果
? ? UIButton*leftItemBtn = [[UIButtonalloc]initWithFrame:CGRectMake(0,0,40,40)];
? ? // 添加點擊事件
? ? [leftItemBtnaddTarget:self action:@selector(leftClick:) forControlEvents:UIControlEventTouchUpInside];
? ? // 設置裁剪
? ? leftItemBtn.layer.cornerRadius=20;
? ? leftItemBtn.layer.masksToBounds=YES;
? ? // 設置背景圖片
? ? [leftItemBtnsetBackgroundImage:[UIImage imageNamed:@"nav_itme_left"] forState:UIControlStateNormal];
? ? //? ? UIImage *leftItemImg = [UIImage imageNamed:@"nav_itme_left"];
? ? self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:leftItemBtn];
}
#pragma mark - 導航左側按鈕方法
- (void)leftClick:(UIBarButtonItem*)item{
? ? if(_tabbarVc.view.frame.origin.x==0) {
? ? ? ? // 添加動畫并且zuo'hu
? ? ? ? [UIView animateWithDuration:1.0 animations:^{
? ? ? ? ? ? self->_tabbarVc.view.frame = CGRectMake([UIScreen mainScreen].bounds.size.width*0.8,0,[UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);
? ? ? ? }];
? ? }else{
? ? ? ? // 回到原來的位置
? ? ? ? [UIView animateWithDuration:1.0 animations:^{
? ? ? ? ? ? self->_tabbarVc.view.frame = CGRectMake(0.0,0.0,[UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);
? ? ? ? }];
? ? }
}
#pragma mark - 賦值根控制器
- (void)setTabbarVc:(UITabBarController*)tVc{
? ? _tabbarVc= tVc;
}
// 添加導航條左側返回按鈕
- (void)setLeftBack{
? ? // 添加滑動效果
? ? UIButton*leftItemBtn = [[UIButtonalloc]initWithFrame:CGRectMake(0,0,40,40)];
? ? // 添加點擊事件
? ? [leftItemBtnaddTarget:self action:@selector(leftBackClick) forControlEvents:UIControlEventTouchUpInside];
? ? // 設置裁剪
? ? leftItemBtn.layer.cornerRadius=20;
? ? leftItemBtn.layer.masksToBounds=YES;
? ? // 設置背景圖片
? ? [leftItemBtnsetBackgroundImage:[UIImage imageNamed:@"login_navigationItem_return"] forState:UIControlStateNormal];
? ? self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:leftItemBtn];
? ? self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
}
- (void)leftBackClick{
? ? [self dismissViewControllerAnimated:YES completion:nil];
}