UI: 网易新闻实现

 
#pragma mark-(AppDelegate.H文件)-----------------------------------------------------------------------

#pragma mark-(.M文件)-----------------------------------------------------------------------

#import "AppDelegate.h"
#import "NavigationViewController.h"
#import "NewsListTVController.h"

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    
    NewsListTVController * newListVC = [[NewsListTVController alloc]init];
    NavigationViewController * navlVC = [[NavigationViewController alloc]initWithRootViewController:newListVC];
    self.window.rootViewController = navlVC;
    [newListVC release];
    [navlVC release];
    
    
    
    return YES;
}
View Code  AppDelegate文件
#pragma mark (NavigationViewController .h文件)--------------------------------------------------------------------------------------------------------


#import <UIKit/UIKit.h>

@interface NavigationViewController : UINavigationController

@end


#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------

#import "NavigationViewController.h"
#import "MacroHeader.h"
#import "NewsListTVController.h"

@interface NavigationViewController ()

@end

@implementation NavigationViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self  commonsetting];//设置共有的导航栏属性
}

-(void)commonsetting{
    self.navigationBar.barTintColor = kmarginNavColor;
    self.navigationBar.tintColor = [UIColor whiteColor];
}

//内存安全处理
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    if ([self isViewLoaded] && !self.view.window) {
        self.view = nil;
    }
}
View Code  NavigationViewController文件
#ifndef wangyiNews_09_17_MacroHeader_h
#define wangyiNews_09_17_MacroHeader_h

//共有导航栏颜色
#define kmarginNavColor [UIColor colorWithRed:171/255.0 green:41/255.0 blue:15/255.0 alpha:1.0]
#define kFont_date      [UIFont systemFontOfSize:10]

#define UIColorFromHexWithAlpha(hexValue,a) [UIColor colorWithRed:((float)((hexValue & 0xFF0000) >> 16))/255.0 green:((float)((hexValue & 0xFF00) >> 8))/255.0 blue:((float)(hexValue & 0xFF))/255.0 alpha:a]
#define UIColorFromHex(hexValue) UIColorFromHexWithAlpha(hexValue,1.0)

#endif
View Code  MacroHeader.h   宏定义文件
#pragma mark (NewsListTVController .h文件)--------------------------------------------------------------------------------------------------------

#import <UIKit/UIKit.h>
@class Model;
@class Model_Detail;

@interface NewsListTVController : UITableViewController
@property(nonatomic,retain)Model * mod;
@property(nonatomic,retain)NSMutableArray * arry;
@end



#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------


//
//  NewsListTVController.m
//  wangyiNews_09_17
//
//  Created by lanounjw on 15/9/17.
//  Copyright (c) 2015年 lanouhn. All rights reserved.
//

#import "NewsListTVController.h"
#import "Model.h"
#import "Type01TVCell.h"
#import "Type02TVCell.h"
#import "Type03TVCell.h"
#import "DetailViewController.h"
#import "Model_Detail.h"

@interface NewsListTVController ()
@property(nonatomic,retain)NSMutableArray * dataSource;//存放数据源
@end

@implementation NewsListTVController

- (void)loadView {
    [super loadView];
}

- (void)viewDidLoad {
    [super viewDidLoad];
    [self customisedNavBar];
    [self readFromPlist];
    [self.tableView registerClass:[Type01TVCell class] forCellReuseIdentifier:@"type01"];
    [self.tableView registerClass:[Type02TVCell class] forCellReuseIdentifier:@"type02"];
    [self.tableView registerClass:[Type03TVCell class] forCellReuseIdentifier:@"type03"];
}

//布局私有的导航栏
-(void)customisedNavBar{
    self.navigationItem.title = @"网易新闻";
    UIBarButtonItem * left = [[UIBarButtonItem alloc]initWithTitle:@"注册" style:UIBarButtonItemStylePlain target:self action:@selector(handleRegister:)];
    left.tintColor = [UIColor whiteColor];
    self.navigationItem.leftBarButtonItem = left;
    
    UIBarButtonItem * right = [[UIBarButtonItem alloc]initWithTitle:@"登陆" style:UIBarButtonItemStylePlain target:self action:@selector(handleLogin:)];
    right.tintColor = [UIColor whiteColor];
    self.navigationItem.rightBarButtonItem = right;
}

//首页注册按钮点击事件
-(void)handleRegister:(UIBarButtonItem *)sender{
    NSLog(@"点击注册按钮");
}

//首页登陆按钮点击事件
-(void)handleLogin:(UIBarButtonItem *)sender{
    NSLog(@"点击登陆按钮");
}

//读取本地数据源
-(void)readFromPlist{
    self.dataSource = [NSMutableArray arrayWithCapacity:0];
    NSString * filePath = [[NSBundle mainBundle] pathForResource:@"NewsData" ofType:@"plist"];
    NSDictionary * data = [NSDictionary  dictionaryWithContentsOfFile:filePath];
    for (NSString  * key in data) {
        if ([key isEqualToString:@"news"]) {
            NSArray *newsArr = [NSArray arrayWithArray:[data objectForKey:key]];
            for (NSDictionary * dic in newsArr) {
                Model * model = [[Model alloc]initWithDic:dic];
                [_dataSource addObject:model];
                [model release];
            }
        }
    }
}

//内存警告处理
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    if ([self isViewLoaded] && !self.view.window) {
        self.view = nil;
    }
}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return self.dataSource.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    Model * model = self.dataSource[indexPath.row];
    int num = indexPath.row % 3;
    if (num == 0) {
        Type01TVCell *cell = [tableView dequeueReusableCellWithIdentifier:@"type01" forIndexPath:indexPath];
        cell.model = model;
        return cell;
    }
    if (num == 1) {
        Type02TVCell *cell = [tableView dequeueReusableCellWithIdentifier:@"type02" forIndexPath:indexPath];
        cell.model = model;
        return cell;
    }
    if (num == 2) {
        Type03TVCell *cell = [tableView dequeueReusableCellWithIdentifier:@"type03" forIndexPath:indexPath];
        cell.model = model;
        return cell;
    }
    return nil;
}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    int num = indexPath.row % 3;
    if (num == 2) {
        return 250;
    }
    return 130;
}

//选中某一行新闻进入新闻详情
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    self.mod = self.dataSource[indexPath.row];
    Model_Detail * moArr = [[Model_Detail alloc]init];
    moArr.title = _mod.title;
    moArr.summary = _mod.summary;
    moArr.date = _mod.PUBLISHDATE;
    moArr.imageView = _mod.imageview;
    DetailViewController * detailVC  = [[DetailViewController alloc]init];
    self.arry = [NSMutableArray arrayWithArray: [moArr getArray]];//成功得到数据
    [self.navigationController pushViewController:detailVC animated:YES];
    [detailVC release];
}

-(void)viewWillDisappear:(BOOL)animated{
    DetailViewController * detailVC  = [[DetailViewController alloc]init];
    detailVC.arr = self.arry;
    NSLog(@"%@",_arry);
    NSLog(@"页面将要消失%@",detailVC.arr);
}

/*
// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    // Return NO if you do not want the specified item to be editable.
    return YES;
}
*/

/*
// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        // Delete the row from the data source
        [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
    } else if (editingStyle == UITableViewCellEditingStyleInsert) {
        // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
    }   
}
*/

/*
// Override to support rearranging the table view.
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
}
*/

/*
// Override to support conditional rearranging of the table view.
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
    // Return NO if you do not want the item to be re-orderable.
    return YES;
}
*/

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end
View Code  NewsListTVController 文件
#pragma mark (Type01TVCell .h文件)--------------------------------------------------------------------------------------------------------

#import <UIKit/UIKit.h>
@class Model;

@interface Type01TVCell : UITableViewCell
@property(nonatomic,retain)Model * model;
@property(nonatomic,retain)UILabel  * titleLabel;
@property(nonatomic,retain)UILabel  * summaryLabel;
@property(nonatomic,retain)UILabel  * dateLabel;
@property(nonatomic,retain)UIImageView * viewImage;

@end



#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------




//
//  Type01TVCell.m
//  wangyiNews_09_17
//
//  Created by lanounjw on 15/9/17.
//  Copyright (c) 2015年 lanouhn. All rights reserved.
//

#import "Type01TVCell.h"
#import "Model.h"
#import "MacroHeader.h"

@implementation Type01TVCell

-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        [self.contentView addSubview:self.titleLabel];
        [self.contentView addSubview:self.summaryLabel];
        [self.contentView addSubview:self.dateLabel];
        self.viewImage =[[UIImageView alloc]initWithFrame:CGRectMake(25, 30, 50, 50)];
        _viewImage.tag = 101;
        //新闻图片是随机出现的
        [_viewImage setImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"new%d",(arc4random()%7)+1] ofType:@"png"]]];
//        NSLog(@"%d",(arc4random()%7)+1);
        [self.contentView addSubview:_viewImage];
    }
    return self;
}

-(UILabel *)titleLabel{
    if (!_titleLabel) {
        self.titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(10, 5, 310, 15)];
        _titleLabel.backgroundColor = UIColorFromHex(0xEEEEE0);
    }
    return [[_titleLabel retain]autorelease];
}
-(UILabel *)summaryLabel{
    if (!_summaryLabel) {
        self.summaryLabel = [[UILabel alloc]initWithFrame:CGRectMake(80, 30, 275, 80)];
        self.summaryLabel.adjustsFontSizeToFitWidth = YES;
        self.summaryLabel.numberOfLines = 0;
        self.summaryLabel.font = [UIFont systemFontOfSize:15];
    }
    return [[_summaryLabel retain]autorelease];
}
-(UILabel *)dateLabel{
    if (!_dateLabel) {
        self.dateLabel = [[UILabel alloc]initWithFrame:CGRectMake(250, 110, 50, 10)];
        _dateLabel.font = [UIFont systemFontOfSize:10];
    }
    return [[_dateLabel retain]autorelease];
}

-(void)setModel:(Model *)model{
    if (self.model != model) {
        [_model release];
        _model = [_model retain];
    }
    self.titleLabel.text = model.title;
    self.summaryLabel.text = [[model.summary substringToIndex:100]stringByAppendingString:@"..."];
    self.dateLabel.text = model.PUBLISHDATE;
    model.imageview = self.imageView;
    self.viewImage = model.imageview;
}
@end
View Code  Type01TVCell 文件
#pragma mark (Type02TVCell .h文件)--------------------------------------------------------------------------------------------------------



#import <UIKit/UIKit.h>
@class Model;

@interface Type02TVCell : UITableViewCell
@property(nonatomic,retain)Model * model;
@property(nonatomic,retain)UILabel  * titleLabel;
@property(nonatomic,retain)UILabel  * summaryLabel;
@property(nonatomic,retain)UILabel  * dateLabel;
@property(nonatomic,retain)UIImageView * viewImage;
@end


#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------



//
//  Type02TVCell.m
//  wangyiNews_09_17
//
//  Created by lanounjw on 15/9/17.
//  Copyright (c) 2015年 lanouhn. All rights reserved.
//

#import "Type02TVCell.h"
#import "Model.h"
#import "MacroHeader.h"

@implementation Type02TVCell

-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        [self.contentView addSubview:self.titleLabel];
        [self.contentView addSubview:self.summaryLabel];
        [self.contentView addSubview:self.dateLabel];
        self.viewImage =[[UIImageView alloc]initWithFrame:CGRectMake(290, 30, 50, 50)];
        //新闻图片是随机出现的
        [_viewImage setImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"new%d",(arc4random()%7)+1] ofType:@"png"]]];
        [self.contentView addSubview:_viewImage];
    }
    return self;
}

-(UILabel *)titleLabel{
    if (!_titleLabel) {
        self.titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(20, 5, 310, 15)];
        _titleLabel.backgroundColor = UIColorFromHex(0xEEEEE0);
    }
    return [[_titleLabel retain]autorelease];
}
-(UILabel *)summaryLabel{
    if (!_summaryLabel) {
        self.summaryLabel = [[UILabel alloc]initWithFrame:CGRectMake(25, 30, 260, 80)];
        self.summaryLabel.adjustsFontSizeToFitWidth = YES;
        self.summaryLabel.numberOfLines = 0;
        self.summaryLabel.font = [UIFont systemFontOfSize:15];

    }
    return [[_summaryLabel retain]autorelease];
}
-(UILabel *)dateLabel{
    if (!_dateLabel) {
        self.dateLabel = [[UILabel alloc]initWithFrame:CGRectMake(250, 110, 50, 10)];
        _dateLabel.font = kFont_date;
    }
    return [[_dateLabel retain]autorelease];
}

-(void)setModel:(Model *)model{
    if (self.model != model) {
        [_model release];
        _model = [_model retain];
    }
    self.titleLabel.text = model.title;
    self.summaryLabel.text = [[model.summary substringToIndex:100]stringByAppendingString:@"..."];
    self.dateLabel.text = model.PUBLISHDATE;
    model.imageview = self.imageView;
    self.viewImage = model.imageview;
}
@end
View Code  Type02TVCell 文件
#pragma mark (Type03TVCell .h文件)--------------------------------------------------------------------------------------------------------

#import <UIKit/UIKit.h>
@class Model;

@interface Type03TVCell : UITableViewCell
@property(nonatomic,retain)Model * model;
@property(nonatomic,retain)UILabel  * titleLabel;
@property(nonatomic,retain)UILabel  * summaryLabel;
@property(nonatomic,retain)UILabel  * dateLabel;
@property(nonatomic,retain)UIImageView * viewImage;
@end


#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------

//
//  Type03TVCell.m
//  wangyiNews_09_17
//
//  Created by lanounjw on 15/9/17.
//  Copyright (c) 2015年 lanouhn. All rights reserved.
//

#import "Type03TVCell.h"
#import "Model.h"
#import "MacroHeader.h"

@implementation Type03TVCell

-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        [self.contentView addSubview:self.titleLabel];
        [self.contentView addSubview:self.summaryLabel];
        self.summaryLabel.adjustsFontSizeToFitWidth = YES;
        self.summaryLabel.numberOfLines = 0;
        self.summaryLabel.font = [UIFont systemFontOfSize:15];
        [self.contentView addSubview:self.dateLabel];
        self.viewImage =[[UIImageView alloc]initWithFrame:CGRectMake(20, 10, 325, 100)];
        //新闻图片是随机出现的
        [_viewImage setImage:[[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"girl%d",(arc4random()%4)+1] ofType:@"png"]] imageWithRenderingMode:UIImageRenderingModeAutomatic]];
        [self.contentView addSubview:_viewImage];
    }
    return self;
}
//#EAEAEA
-(UILabel *)titleLabel{
    if (!_titleLabel) {
        self.titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(25, 120, 315, 20)];
        _titleLabel.backgroundColor = UIColorFromHex(0xEEEEE0);
    }
    return [[_titleLabel retain]autorelease];
}
-(UILabel *)summaryLabel{
    if (!_summaryLabel) {
        self.summaryLabel = [[UILabel alloc]initWithFrame:CGRectMake(30, 150, 300, 80)];
    }
    return [[_summaryLabel retain]autorelease];
}
-(UILabel *)dateLabel{
    if (!_dateLabel) {
        self.dateLabel = [[UILabel alloc]initWithFrame:CGRectMake(250, 236, 50, 10)];
        _dateLabel.font = kFont_date;
    }
    return [[_dateLabel retain]autorelease];
}

-(void)setModel:(Model *)model{
    if (self.model != model) {
        [_model release];
        _model = [_model retain];
    }
    self.titleLabel.text = model.title;
    self.summaryLabel.text = [[model.summary substringToIndex:90]stringByAppendingString:@"..."];
    self.dateLabel.text = model.PUBLISHDATE;
    model.imageview = self.imageView;
    self.viewImage = model.imageview;
}
@end
View Code  Type03TVCell 文件
#pragma mark (.h文件)--------------------------------------------------------------------------------------------------------


#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

//封装类 把本地 plist 文件里小字典里的信息存放到一个一个的对象里
@interface Model : NSObject
@property(nonatomic,retain)NSString * title;
@property(nonatomic,retain)NSString * summary;
@property(nonatomic,retain)NSString * PUBLISHDATE;
@property(nonatomic,retain)UIImageView * imageview;
-(instancetype)initWithDic:(NSDictionary * )dic;
@end



#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------


//
//  Model.m
//  wangyiNews_09_17
//
//  Created by lanounjw on 15/9/17.
//  Copyright (c) 2015年 lanouhn. All rights reserved.
//

#import "Model.h"

@implementation Model

//封装类 把找到的 key (这里的属性)赋值给封装类的属性(本类的属性)
-(instancetype)initWithDic:(NSDictionary * )dic{
    self = [super init];
    if (self) {
        [self setValuesForKeysWithDictionary:dic];
    }
    return  self;
}

-(void)setValue:(id)value forUndefinedKey:(NSString *)key{
    
}

-(void)dealloc{
    self.title = nil;
    self.summary = nil;
    self.PUBLISHDATE = nil;
    [super dealloc];
}
@end
View Code  Model 文件
#pragma mark (.h文件)--------------------------------------------------------------------------------------------------------


#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

typedef NSMutableArray * (^titleAndSummaryAndDate)(NSMutableArray * modelArr);
@interface Model_Detail : NSObject
@property(nonatomic,copy)titleAndSummaryAndDate modelArrary;
@property(nonatomic,retain)NSString * title, * summary, * date;
@property(nonatomic,retain)UIImageView * imageView;
@property(nonatomic,retain)NSMutableArray * allArrary;
-(NSMutableArray *)getArray;

@end



#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------

//  Model_Detail.m
//  wangyiNews_09_17
//
//  Created by lanounjw on 15/9/17.
//  Copyright (c) 2015年 lanouhn. All rights reserved.
//

#import "Model_Detail.h"

@implementation Model_Detail

-(void)setTitle:(NSString *)title{
    if (_title != title) {
        [_title release];
        _title = [title retain];
    }
}
-(void)setSummary:(NSString *)summary{
    if (_summary != summary) {
        [_summary release];
        _summary = [summary retain];
    }
}
-(void)setDate:(NSString *)date{
    if (_date != date) {
        [_date release];
        _date = [date retain];
    }
}
-(void)setImageView:(UIImageView *)imageView{
    if (_imageView != imageView) {
        [_imageView release];
        _imageView = [imageView retain];
    }
}
-(void)setModelArrary:(titleAndSummaryAndDate)modelArrary{
    if (_modelArrary != modelArrary) {
        [_modelArrary  release];
        _modelArrary  = [modelArrary retain];
    }
}
-(NSMutableArray *)getArray{
    NSMutableArray * arr0 = [NSMutableArray arrayWithCapacity:0];
    [arr0 addObject:self.title];
    NSMutableArray * arr1 = [NSMutableArray arrayWithCapacity:0];
    [arr1 addObject:self.summary];
    NSMutableArray * arr2 = [NSMutableArray arrayWithCapacity:0];
    [arr2 addObject:self.date];
    NSMutableArray * arr3 = [NSMutableArray arrayWithCapacity:0];
    [arr3 addObject:self.imageView];
    self.allArrary = [NSMutableArray arrayWithCapacity:0];
    [_allArrary addObject:arr0];
    [_allArrary addObject:arr1];
    [_allArrary addObject:arr2];
    [_allArrary addObject:arr3];
    NSLog(@"model_Detal 测试 %@",_allArrary);
    return _allArrary;
}

@end
View Code  Model_Detail文件
#pragma mark (DetailViewController .h文件)--------------------------------------------------------------------------------------------------------

#import <UIKit/UIKit.h>
#import "Model.h"

@interface DetailViewController : UIViewController

@property(nonatomic,retain)UILabel * titleLabel;
@property(nonatomic,retain)UILabel * summaryLabel;
@property(nonatomic,retain)UILabel * dateLabel;
@property(nonatomic,retain)UIImageView * imageView;
@property(nonatomic,retain)NSMutableArray * arr;
@property(nonatomic,retain)NSString * str0,*str1,*str2,*str3;
@end



#pragma mark (.m文件)--------------------------------------------------------------------------------------------------------


//
//  DetailViewController.m
//  wangyiNews_09_17
//
//  Created by lanounjw on 15/9/17.
//  Copyright (c) 2015年 lanouhn. All rights reserved.
//

#import "DetailViewController.h"
#import "NewsListTVController.h"

@interface DetailViewController ()

@end

@implementation DetailViewController

-(void)viewWillAppear:(BOOL)animated{
//    self.str0 = _arr[0];
//    self.str1 = _arr[1];
//    self.str2 = _arr[2];
//    self.str3 = _arr[3];
    NSLog(@"页面将要出现%@ ",_arr);
}
- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    [self customsizedNavBar];
    [self makeDetialView];
}

//私有导航条的设置
-(void)customsizedNavBar{
    self.navigationItem.title = @"新闻详情";
    UIBarButtonItem * left = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"btn_navigationBar_back@2x"] style:UIBarButtonItemStylePlain target:self action:@selector(handleBack:)];
    self.navigationItem.leftBarButtonItem = left;
    [left release];
    
    UIBarButtonItem * right = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"doneR@2x"] style:UIBarButtonItemStylePlain target:self action:@selector(handleAddDone:)];
    self.navigationItem.rightBarButtonItem = right;
    [right release];
}

//加载详情信息页面
-(void)makeDetialView{
    //接受信息
//    self.imageView = [[UIImageView alloc]initWithFrame:CGRectMake(10, 74,self.view.frame.size.width - 20, self.view.frame.size.height * 0.2)];
//    _imageView = _arr[3];
//    [self.view addSubview:self.imageView];
//    _imageView.backgroundColor = [UIColor redColor];
//    [_imageView release];
    
    self.titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(20, self.view.frame.size.height * 0.2 + 84, self.view.frame.size.width - 40,30)];
    _titleLabel.text = self.str0;
    _titleLabel.backgroundColor = [UIColor grayColor];
    [self.view addSubview:_titleLabel];
    [_titleLabel release];
    
    //自适应高度
    CGFloat height = 300;
    self.summaryLabel = [[UILabel alloc]initWithFrame:CGRectMake(15, self.view.frame.size.height * 0.65  - 170, self.view.frame.size.width - 30, height)];
    [self.view addSubview:_summaryLabel];
    _summaryLabel.text = _arr[1];
    _summaryLabel.backgroundColor = [UIColor greenColor];
    [_summaryLabel release];
    
    self.dateLabel = [[UILabel alloc]initWithFrame:CGRectMake(self.view.frame.size.width - 150,self.view.frame.size.height - 30 , 90, 20)];
    _dateLabel.text = _arr[2];
    [self.view addSubview:_dateLabel];
    _dateLabel.backgroundColor = [UIColor blueColor];
}

//返回按钮点击事件
-(void)handleBack:(UIBarButtonItem *)sender{
    [self.navigationController popViewControllerAnimated:YES];
}
//收藏按钮点击事件
-(void)handleAddDone:(UIBarButtonItem *)sender{
    NSLog(@"触发收藏按钮点击事件");
}

//内存警告处理
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    if ([self isViewLoaded] && !self.view.window) {
        self.view = nil;
    }
}

@end
View Code  DetailViewController 文件
原文地址:https://www.cnblogs.com/benpaobadaniu/p/4815341.html