import UIKit
class ListTableViewController: UITableViewController {
var personList = [Person]()
override func viewDidLoad() {
super.viewDidLoad()
loadData{ (list) in
print("完成加载")
//拼接数组
self.personList += list
self.tableView.reloadData()
}
}
private func loadData(completion:@escaping(_ list:[Person])->())->(){
DispatchQueue.global().async {
print("开始加载数据。。。")
Thread.sleep(forTimeInterval: 1)
var arrayM = [Person]()
for i in 0..<20{
let p = Person()
p.name = "zhangsang - \(i)";
p.phone = "1860" + String(format:"%06d",arc4random_uniform(100000))
p.title = "boss"
arrayM.append(p)
}
DispatchQueue.main.async(execute: {
//回调异步获取的结果
completion(arrayM)
})
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return personList.count
}
@IBAction func newPerson(_ sender: Any) {
performSegue(withIdentifier: "list2Detail", sender: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let vc = segue.destination as? DetailViewController
if let indexPath=sender as? IndexPath {
vc?.person = personList[indexPath.row]
vc?.completionCallBack = {
self.tableView.reloadRows(at: [indexPath], with:.automatic)
}
}else{
vc?.completionCallBack = { [weak vc] in
guard let p = vc?.person else {
return
}
self.personList.insert(p, at: 0)
self.tableView.reloadData()
}
}
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cellid", for: indexPath)
cell.textLabel?.text = personList[indexPath.row].name
cell.detailTextLabel?.text = personList[indexPath.row].phone
return cell
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
performSegue(withIdentifier: "list2Detail", sender: indexPath)
}
}
import UIKit
class DetailViewController: UITableViewController {
@IBOutlet weak var nameText: UITextField!
@IBOutlet weak var phoneText: UITextField!
@IBOutlet weak var titleText: UITextField!
var person: Person?
var completionCallBack:(()->())?
override func viewDidLoad() {
super.viewDidLoad()
if person != nil {
nameText.text = person?.name
phoneText.text = person?.phone
titleText.text = person?.title
}
}
@IBAction func savePerson(_ sender: Any) {
if person == nil {
person = Person()
}
person?.name = nameText.text
person?.phone = phoneText.text
person?.title = titleText.text
completionCallBack?()
navigationController?.popViewController(animated: true)
}
}
import UIKit
class Person: NSObject {
var name: String?
var phone:String?
var title:String?
}
分享到:
相关推荐
【个人通信录系统(VC)】是一个初学者为了学习编程技术而开发的简单应用程序,它主要功能是管理和存储联系人的信息。在这个系统中,用户可以添加、编辑、删除和查找联系人,方便日常生活中对人际交往信息的管理。作为...
标题中的“个人通信录管理”指的是一个用于存储和管理个人联系人信息的系统。这个系统设计的目的是帮助用户方便地组织他们的联系人数据,包括姓名、电话号码、电子邮件地址、家庭住址等。在信息技术领域,这类应用...
【个人通讯记录程序】是一个专为个人设计的通信记录管理应用。通过这个项目,开发者旨在帮助用户方便地管理和整理他们的各种通讯记录,包括电话、短信、邮件等。在这个项目中,我们可以深入学习到如何实现这样的功能...
《宽乐通信个人通信录操作手册》主要涵盖了个人通信录的导入与导出功能,旨在帮助用户高效管理和同步他们的联系人信息。以下是手册中的详细知识点: 1. **个人通信录导入**: - **功能介绍**:宽乐通信提供了一个...
【个人通信录 Java 开发详解】 在信息技术领域,个人通信录是常见的应用,它用于存储、管理和检索联系人的信息。本项目以Java编程语言实现了一个个人通信录系统,旨在帮助用户方便地管理他们的联系人数据。Java作为...
【个人通信录管理系统】是初学者使用C#编程语言与Visual Studio 2008(VS2008)开发的一款实用工具,旨在帮助用户管理他们的联系人信息。这款系统具备了基本的通信录功能,包括录入新联系人、编辑已有联系人信息、...
在日常生活中,个人通信录是我们不可少的,不管是纸式的个人通信录 还是我们手机中的个人通信录,查寻是其最基本的操作,几乎所有的操作都是在查寻的基础上进行的,所以,查寻时间的快慢很大程度上决定了整个通信录...
《C#2005 WinForm个人通信录:构建与实现》 在信息化时代,个人通信录成为管理人脉关系的重要工具。本项目“C#2005 WinForm个人通信录”采用C#编程语言,结合Windows Forms(WinForm)界面设计以及SQLServer2000...
【个人通信录C++版完整代码】是一个C++编程实现的个人通讯录系统,它可以记录个人的联系人信息,包括同学、同事、朋友和亲戚。系统具有多种功能,包括录入、修改、删除联系人信息,按姓名查询,查找即将过生日的人员...
《C#个人通信录》项目是一个使用.NET框架开发的实用应用程序,旨在帮助用户管理他们的联系人信息。这个项目不仅提供基本的联系人添加、编辑和删除功能,还包含了一个报告生成模块,使得用户可以对存储的联系人信息...
【VC个人通信录系统】是一个基于Visual Studio 2008开发环境和Windows 7操作系统构建的个人通讯管理系统。此系统旨在帮助用户有效地管理和存储他们的联系人信息,提供了一个便捷的方式来记录、查找和编辑联系人的...
【个人通信录输入C#程序】是一个基于C#编程语言开发的应用程序,旨在帮助用户管理和存储个人联系人信息。在C#中,这样的程序通常利用.NET框架提供的丰富的类库和功能来实现。以下是对该程序及其相关知识点的详细说明...
要求:开发一个个人通信录管理系统,用于记录同学(包含一起上学的学校名称)、同事(包含共事的单位名称)、朋友(包含认识的地点)、亲戚(包含称呼)等与本人有关人员的数据集,要求实现以下功能: (1)提供录入...
【JavaWeb版个人通信录系统】是一个基于Java企业级开发平台(Java EE)构建的应用程序,主要用于管理和维护用户的个人信息及通信录。系统的核心功能包括用户个人信息管理、联系人信息的增删查改、数据格式化、备份与...
个人通信录记录了同学(包含一起上学的学校名称)、同事(包含共事的单位名称)、朋友(包含认识的地点)、亲戚(包含称呼)与本人的关系,并且每个人都包含了基本信息姓名、出生日期、电话和email地址,通过调用...
【VB个人通信录管理系统】是一款基于Visual Basic(VB)编程语言开发的应用软件,主要用于管理和存储个人联系人信息。VB作为Microsoft公司推出的事件驱动编程工具,以其直观易学、功能丰富的特性,深受初学者和专业...
总之,这个个人通信录管理系统是一个典型的面向对象程序设计案例,它结合了数据结构和用户交互,提供了一种便捷的方式来管理个人通讯信息。通过这个课程设计,学生可以深入理解C++编程、数据结构以及软件设计原则。
用java写的个人通信录,具有图形界面,能实现对个人信息的录入、查询、删除、修改、排序等功能,可以分别输出同学、朋友、同事、亲戚以及全体人员的信息。 详情:个人通信录记录了同学(包含一起上学的学校名称)、...
在SQL(Structured Query Language)中建立个人通信录数据库是一个涉及数据结构设计、表创建、字段定义以及可能的数据插入和查询的过程。以下将详细介绍如何利用SQL来实现这一目标。 首先,我们需要设计数据库的...