一 概述
本文主要完成私人通訊錄編輯界面,包含以下功能:
-
新建私人通訊錄編輯界面和控制器
-
將通訊錄數據傳遞到編輯頁面
-
編輯,取消按鈕功能
-
保存數據返回並刷新界面
<!--more-->
二 效果圖
三 功能實現
3.1 將通訊錄數據傳遞到編輯頁面
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { NSLog(@"%@",segue.destinationViewController); if ([segue.destinationViewController isKindOfClass:[AddViewController class]]) { AddViewController *vc=segue.destinationViewController; vc.delegate=self; }else { //跳轉到編輯控制器 EditViewController *edit=segue.destinationViewController; NSIndexPath *selectIndex=[self.tableView indexPathForSelectedRow]; edit.delegate=self; edit.contact=self.contacts[selectIndex.row]; } }
3.2 編輯,取消按鈕功能
//點擊編輯按鈕 - (IBAction)edit:(UIBarButtonItem *)sender { if ([sender.title isEqualToString:@"取消"]) { //1.改變按鈕的文字 sender.title=@"編輯"; //2.允許文本框編輯 _nameField.enabled=NO; _phoneField.enabled=NO; //3.顯示保存按鈕 _saveBtn.hidden=YES; //4.彈出電話的鍵盤 [self.view endEditing:YES]; //恢復文本框顯示 //給控件賦值 _nameField.text=_contact.name; _phoneField.text=_contact.phone; }else { //1.改變按鈕的文字 sender.title=@"取消"; //2.允許文本框編輯 _nameField.enabled=YES; _phoneField.enabled=YES; //3.顯示保存按鈕 _saveBtn.hidden=NO; //4.彈出電話的鍵盤 [_phoneField becomeFirstResponder]; } }
3.3 保存數據返回並刷新界面
//保存按鈕 - (IBAction)save:(UIButton *)sender { //1.回到聯繫人界面 [self.navigationController popViewControllerAnimated:YES]; //2.更新數據:覆蓋舊的數據,把最新的數據展示出來 self.contact.name=_nameField.text; self.contact.phone=_phoneField.text; //3.通知聯繫人界面刷新表格 if ([_delegate respondsToSelector:@selector(editViewController:didUpdateContact:)]) { [_delegate editViewController:self didUpdateContact:self.contact]; } }