MainViewController.m
#import "MainViewController.h"
#import "TableViewCell.h"
#import "SecondViewController.h"
@interface MainViewController ()<UITableViewDataSource,UITableViewDelegate,SecondViewControllerDelegate>
@property (nonatomic, retain) NSMutableArray *array;
@property (nonatomic, retain) NSMutableArray *arrayPhone;
@property (nonatomic, retain) NSArray *arrayImage;
@property (nonatomic, assign) NSInteger integer;
@end
@implementation MainViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
self.array = [NSMutableArray arrayWithObjects: nil];
self.arrayPhone = [NSMutableArray arrayWithObjects:@"1315550000", @"13546855962", @"1334582647", @"1574658234", @"135458214", @"1359874126", @"13254896774", @"12257482369", @"18245876954", @"1574965842", @"16354285963", @"13956482654", @"13248569854", @"1345869753", @"1554869523", @"1567463214",@"14285963147", @"1225985448", @"548266996", @"4712548533", @"132548536", @"142585485", @"12563966547", @"456464646",nil];
self.arrayImage = [NSMutableArray arrayWithObjects: nil];
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.title = @"通讯录";
self.tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320, 480) style:UITableViewStylePlain];
self.tableView.separatorColor = [UIColor redColor];
self.tableView.rowHeight = 100;
self.tableView.dataSource = self;
self.tableView.delegate = self;
[self.view addSubview:self.tableView];
[_tableView release];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.array count];
}
// 通讯录主界面从数组中得到数据
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *string = @"年华";
TableViewCell *cell = [tableView dequeueReusableHeaderFooterViewWithIdentifier:string];
if (cell == nil) {
cell = [[[TableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:string]autorelease];
}
NSString *name = [self.array objectAtIndex:indexPath.row];
cell.myLabel.text = name;
cell.myLabel.tag = 10000;
NSString *phoneNumber = [self.arrayPhone objectAtIndex:indexPath.row];
cell.myPhoneLabel.tag = 10001;
cell.myPhoneLabel.text = phoneNumber;
NSString *imageView = [self.arrayImage objectAtIndex:indexPath.row];
cell.myImageView.image = [UIImage imageNamed:imageView];
return cell;
}
// 将通讯录界面的数据传到修改界面以便修改
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
SecondViewController *secondVC = [[SecondViewController alloc]init];
NSString *name = [self.array objectAtIndex:indexPath.row];
self.integer = indexPath.row;
secondVC.reveiveName = name;
NSString *phone = [self.arrayPhone objectAtIndex:indexPath.row];
secondVC.reveivePhone = phone;
NSString *image = [self.arrayImage objectAtIndex:indexPath.row];
secondVC.reveiveImage = image;
secondVC.delegate = self;
[self.navigationController pushViewController:secondVC animated:YES];
[secondVC release];
}
// 接受从修改界面传过来的数据
- (void)passValue:(NSString *)name phone:(NSString *)phone
{
[self.array replaceObjectAtIndex:self.integer withObject:name];
[self.arrayPhone replaceObjectAtIndex:self.integer withObject:phone];
[self.tableView reloadData];
}
SecondViewController.m
#import "SecondViewController.h"
@interface SecondViewController ()
@end
@implementation SecondViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
// 布局修改界面
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
imageView.image = [UIImage imageNamed:@"back.jpg"];
[self.view addSubview:imageView];
[imageView release];
self.imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 100, 140, 250)];
self.imageView.image = [UIImage imageNamed:self.reveiveImage];
self.imageView.backgroundColor = [UIColor blueColor];
[self.view addSubview:self.imageView];
UILabel *name = [[UILabel alloc]initWithFrame:CGRectMake(140, 100, 90, 30)];
name.text = @"姓名:";
[self.view addSubview:name];
self.textFieldName = [[UITextField alloc]initWithFrame:CGRectMake(200, 100, 90, 40)];
self.textFieldName.text = self.reveiveName;
self.textFieldName.tag = 1001;
self.textFieldName.backgroundColor = [UIColor grayColor];
[self.view addSubview:self.textFieldName];
UILabel *phone = [[UILabel alloc]initWithFrame:CGRectMake(140, 160, 70, 30)];
phone.text = @"手机号:";
[self.view addSubview:phone];
self.textFieldPhone = [[UITextField alloc]initWithFrame:CGRectMake(200, 160, 110, 40)];
self.textFieldPhone.tag = 1002;
self.textFieldPhone.text = self.reveivePhone;
self.textFieldPhone.backgroundColor = [UIColor grayColor];
[self.view addSubview:self.textFieldPhone];
UIButton *submit = [UIButton buttonWithType:UIButtonTypeSystem];
submit.frame = CGRectMake(170, 220, 40, 40);
[submit setTitle:@"提交" forState:UIControlStateNormal];
[submit addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:submit];
UIButton *cancel = [UIButton buttonWithType:UIButtonTypeSystem];
cancel.frame = CGRectMake(220, 220, 40, 40);
[cancel setTitle:@"取消" forState:UIControlStateNormal];
[cancel addTarget:self action:@selector(buttonCancel:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:cancel];
[_imageView release];
[_textFieldName release];
[_textFieldPhone release];
}
// 提交将数据保存返回到上一页面
- (void)buttonClicked:(UIButton *)button
{
[self.delegate passValue:_textFieldName.text phone:_textFieldPhone.text ];
[self.navigationController popToRootViewControllerAnimated:YES];
}
// 取消返回上一页
- (void)buttonCancel:(UIButton *)button
{
[self.navigationController popToRootViewControllerAnimated:YES];
}
// 关掉键盘
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
for (int i = 1; i < 3; i++) {
UITextField *text = (UITextField *)[self.view viewWithTag:1000 + i];
[text resignFirstResponder];
}
}
TableViewCell.m
#import "TableViewCell.h"
@implementation TableViewCell
// 创建修改画面
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
self.myImageView = [[UIImageView alloc]init];
[self.contentView addSubview:self.myImageView];
self.myLabel = [[UILabel alloc]init];
[self.contentView addSubview:self.myLabel];
self.myPhoneLabel = [[UILabel alloc]init];
[self.contentView addSubview:self.myPhoneLabel];
[_myImageView release];
[_myLabel release];
[_myPhoneLabel release];
}
return self;
}
// 布局通讯录主画面
- (void)layoutSubviews
{
[super layoutSubviews];
_myImageView.frame = CGRectMake(0, 0, self.contentView.frame.size.width / 2, self.contentView.frame.size.height);
_myLabel.frame = CGRectMake(self.contentView.frame.size.width / 5 * 3, 0, self.contentView.frame.size.width / 2, self.contentView.frame.size.height / 2);
_myPhoneLabel.frame = CGRectMake(self.contentView.frame.size.width / 5 * 3, self.contentView.frame.size.height / 2, self.contentView.frame.size.width / 2, self.contentView.frame.size.height / 2);
}