UI9_UITableView练习

//
// RootViewController.h
// UI9_UITableView练习
//
// Created by YIem on 15/12/17.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface RootViewController : UIViewController

@end


//
// RootViewController.m
// UI9_UITableView练习
//
// Created by YIem on 15/12/17.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import "RootViewController.h"
#import "SecondViewController.h"
@interface RootViewController ()<UITableViewDataSource, UITableViewDelegate, PassDelegate>
@property (nonatomic, retain)UITableView *tableView;
@property (nonatomic, retain)NSMutableArray *dataArr;
@property (nonatomic, retain)NSIndexPath *index;// 记录点击的cell位置
@end

@implementation RootViewController

  • (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor = [UIColor whiteColor];
    //
    self.title = @"YIem";
    //
    self.tableView = [[UITableView alloc]initWithFrame:self.view.bounds style:UITableViewStylePlain];

    // _tableView.backgroundColor = [UIColor yellowColor];
    [self.view addSubview:_tableView];
    [_tableView release];

_tableView.delegate = self;
_tableView.dataSource = self;


// 数据处理
self.dataArr = [@[@"大娃", @"二娃", @"三娃", @"四娃", @"五娃", @"六娃", @"七娃"]mutableCopy];

}

  • (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
    // 通过数组元素个数 动态设置cell行数
    return _dataArr.count;
    }

  • (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
    if (!cell) {
    cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"] autorelease];
    }

    // 通过行数从数组中获取对应下标的元素
    cell.textLabel.text = _dataArr[indexPath.row];
    return cell;
    }

// 点击cell

  • (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
    SecondViewController *secVC = [[SecondViewController alloc]init];
    // 传值
    secVC.name = _dataArr[indexPath.row];
    // 协议传值
    secVC.delegate = self;
    // 记录点击cell的位置
    self.index = indexPath;
    [self.navigationController pushViewController:secVC animated:YES];
    [secVC release];
    }
  • (void)passValue:(NSString *)name
    {
    // 修改信息
    // 通过记录的点击位置信息 将传递过来的值 替换原内容
    [_dataArr replaceObjectAtIndex:_index.row withObject:name];
    // tableView整体刷新 重新执行所有协议方法
    // [_tableView reloadData];
    // 单行刷新
    // 参数1: 需要刷新的下标
    // 参数2: 刷新动画
    [_tableView reloadRowsAtIndexPaths:@[_index] withRowAnimation:UITableViewRowAnimationRight];

}

  • (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
    }

/* #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



//
// SecondViewController.h
// UI9_UITableView练习
//
// Created by YIem on 15/12/17.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import <UIKit/UIKit.h>

@protocol PassDelegate

  • (void)passValue:(NSString *)name;

@end
@interface SecondViewController : UIViewController

@property (nonatomic, copy)NSString *name;

@property (nonatomic, assign) iddelegate;

@end


//
// SecondViewController.m
// UI9_UITableView练习
//
// Created by YIem on 15/12/17.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import "SecondViewController.h"

@interface SecondViewController ()
@property (nonatomic, retain)UITextField *textField;
@end

@implementation SecondViewController

  • (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor = [UIColor whiteColor];
//
self.textField = [[UITextField alloc]initWithFrame:CGRectMake(100, 100, 100, 30)];
_textField.backgroundColor = [UIColor yellowColor];
_textField.text = self.name;
[self.view addSubview:_textField];
[_textField release];
// buttomn
UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(100, 200, 100, 30)];
button.backgroundColor = [UIColor redColor];
[self.view addSubview:button];
[button release];
[button addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];

}

  • (void)back
    {

    [self.delegate passValue:_textField.text];
    [self.navigationController popViewControllerAnimated:YES];
    }

  • (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
    }

/* #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
//
// SecondViewController.m
// UI9_UITableView练习
//
// Created by YIem on 15/12/17.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import "SecondViewController.h"

@interface SecondViewController ()
@property (nonatomic, retain)UITextField *textField;
@end

@implementation SecondViewController

  • (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor = [UIColor whiteColor];
//
self.textField = [[UITextField alloc]initWithFrame:CGRectMake(100, 100, 100, 30)];
_textField.backgroundColor = [UIColor yellowColor];
_textField.text = self.name;
[self.view addSubview:_textField];
[_textField release];
// buttomn
UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(100, 200, 100, 30)];
button.backgroundColor = [UIColor redColor];
[self.view addSubview:button];
[button release];
[button addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];

}

  • (void)back
    {

    [self.delegate passValue:_textField.text];
    [self.navigationController popViewControllerAnimated:YES];
    }

  • (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
    }

/* #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

标签: none

添加新评论

Title - Artist
0:00