2016-1-5第一個完整APP 私人通訊錄的實現 4:編輯連絡人

來源:互聯網
上載者:User

標籤:

一:建立編輯連絡人的controller,並使其擁有模型contact,且有協議。代碼如下

#import <UIKit/UIKit.h>#import "contact.h"@class EditContactViewController ;@protocol EditContactViewControllerDelegate<NSObject>- (void) editContactViewController:(EditContactViewController *)editContactViewController finishedSaveContact:(contact *)con;@end@interface EditContactViewController : UIViewController@property (strong, nonatomic) contact *contact;@property (weak, nonatomic) IBOutlet UITextField *nameField;@property (weak, nonatomic) IBOutlet UITextField *telField;@property (weak, nonatomic) id <EditContactViewControllerDelegate> delegate;@end

.m檔案中代碼如下:

#import "EditContactViewController.h"@interface EditContactViewController ()@property (weak, nonatomic) IBOutlet UIButton *saveBtn;@property (weak, nonatomic) IBOutlet UIBarButtonItem *editBtn;@end@implementation EditContactViewController- (void)viewDidLoad {    [super viewDidLoad];    self.nameField.text = self.contact.name;    self.telField.text = self.contact.tel;}- (IBAction)saveBtnClick:(id)sender {    if ([self.delegate respondsToSelector:@selector(editContactViewController:finishedSaveContact:)])    {//        NSLog(@"%s",__func__);        self.contact.name = self.nameField.text;        self.contact.tel = self.telField.text;        [self.delegate editContactViewController:self finishedSaveContact:self.contact];    }}- (IBAction)editBtnClick:(id)sender {    self.nameField.enabled = !self.nameField.enabled;    self.telField.enabled = !self.telField.enabled;    self.saveBtn.hidden = !self.saveBtn.hidden;    if (self.nameField.enabled) {        self.editBtn.title = @"取消";    }else {        self.editBtn.title  = @"編輯";    }}@end

二:

(1)在contactsController中將被點擊的cell中的資料傳給編輯人控制器,代碼如下:

//    判斷目標控制器類型    if ([destVc isKindOfClass:[EditContactViewController class]]) {        EditContactViewController *edit = destVc;        NSInteger indexPathOfRow =   self.tableView.indexPathForSelectedRow.row;//        擷取要傳遞給目標控制器的contact        contact *con = self.contacts[indexPathOfRow];//        設定目標控制器的contact屬性        edit.contact = con;//        設定自己為目標控制器的代理        edit.delegate = self;    }

(2)在contactsController中實現代理方法,並重新整理資料,代碼如下:

- (void)editContactViewController:(EditContactViewController *)editContactViewController finishedSaveContact:(contact *)con{//    擷取連絡人的資料 並載入到自己的連絡人裡//    在自己的數組中找到當時傳入的contact,並擷取哪一行    NSInteger row = [self.contacts indexOfObject:con];//   找到要重新整理的那一個cell    NSIndexPath *path = [NSIndexPath indexPathForRow:row inSection:0];//    局部重新整理    [self.tableView reloadRowsAtIndexPaths:@[path] withRowAnimation:YES];//    隱藏編輯連絡人控制器    [self.navigationController popViewControllerAnimated:YES];}

三:實際效果如下:

2016-1-5第一個完整APP 私人通訊錄的實現 4:編輯連絡人

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.