效果:
结构:界面比较少,所以基本都用storyBoard画完了
- viewController
- InsertMessageViewController
import UIKit
class InsertMessageViewController: UIViewController{
//MARK: - 属性
//姓名
@IBOutlet weak var nameLabel: UITextField!
//学号
@IBOutlet weak var studyNumLabel: UITextField!
//年龄
@IBOutlet weak var ageLabel: UITextField!
//专业
@IBOutlet weak var majorLabel: UITextField!
//男单选框
@IBOutlet weak var mailBtn: UIButton!
//女单选框
@IBOutlet weak var FeMailBtn: UIButton!
//性别
var sex = "男"
//MARK: - 生命周期
override func viewDidLoad() {
super.viewDidLoad()
self.mailBtn.selected = true
self.view.backgroundColor = UIColor(red: 0.78, green: 0.74, blue: 0.60, alpha: 1)
self.navigationSetting()
self.nameLabel.delegate = self
self.ageLabel.delegate = self
self.studyNumLabel.delegate = self
self.majorLabel.delegate = self
self.nameLabel.returnKeyType = .Done
self.ageLabel.returnKeyType = .Done
self.studyNumLabel.returnKeyType = .Done
self.majorLabel.returnKeyType = .Done
}
}
extension InsertMessageViewController{
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
}
//MARK: - 设置navigation
extension InsertMessageViewController{
func navigationSetting(){
self.navigationController?.navigationBar.hidden = false
self.navigationController?.navigationBar.barTintColor = UIColor(red: 0.32, green: 0.75, blue: 0.98, alpha: 1)
}
}
//MARK: - 复选框
extension InsertMessageViewController{
@IBAction func mailAction(sender: UIButton) {
sender.selected = true
self.FeMailBtn.selected = false
}
@IBAction func feMailAction(sender: UIButton) {
sender.selected = true
self.mailBtn.selected = false
}
}
//MARK: - 录入信息
extension InsertMessageViewController{
///判断信息是否正确函数
func isRight() -> Bool{
if self.nameLabel.text == "" || self.majorLabel.text == ""{
self.notice("信息错误", type: NoticeType.error, autoClear: true)
return false
}
if (Int(self.ageLabel.text!) == nil) || (Int(self.studyNumLabel.text!) == nil){
self.notice("信息错误", type: NoticeType.error, autoClear: true)
return false
}
if self.studyNumLabel.text?.characters.count != 10{
self.notice("信息错误", type: NoticeType.error, autoClear: true)
return false
}
let sqlStr = "SELECT * FROM t_Student WHERE studyNum = ?;"
if FMDBManager.defaultManager.db.executeQuery(sqlStr, withArgumentsInArray: [self.studyNumLabel.text!]).next(){
self.notice("学号已存在", type: NoticeType.error, autoClear: true)
return false
}
//print("正确")//测试
return true
}
@IBAction func insertAction(sender: AnyObject) {
//确定性别
self.sex = self.mailBtn.selected ? "男" : "女"
//print(self.sex)//测试
//数据库插入操作
if self.isRight(){
let model = DataModel()
model.name = self.nameLabel.text!
model.sex = self.sex
model.studyNum = self.studyNumLabel.text!
model.age = self.ageLabel.text!
model.major = self.majorLabel.text!
if FMDBManager.defaultManager.insertData(model){
self.notice("数据插入成功", type: NoticeType.success, autoClear: true)
self.nameLabel.text = ""
self.ageLabel.text = ""
self.studyNumLabel.text = ""
self.majorLabel.text = ""
}
else{
self.notice("数据插入失败", type: NoticeType.error, autoClear: true)
}
}
}
}
//MARK: - 文本框代理
extension InsertMessageViewController:UITextFieldDelegate{
func textFieldShouldReturn(textField: UITextField) -> Bool {
self.view.endEditing(true)
return true
}
}
- MessageTableViewController
import UIKit
class MessageTableViewController: UITableViewController {
//数据源数组
lazy var dataArray:[DataModel] = {
return FMDBManager.defaultManager.getData()
}()
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor(red: 0.69, green: 0.77, blue: 0.64, alpha: 1)
self.navigationSetting()
//注册cell
self.tableView.registerNib(UINib(nibName: "ZGJTableViewCell", bundle: nil), forCellReuseIdentifier: "cell")
//设置行高
self.tableView.rowHeight = 166
//分割线
self.tableView.separatorStyle = .None
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.dataArray = FMDBManager.defaultManager.getData()
self.tableView.reloadData()
}
}
//MARK: - 设置navigation
extension MessageTableViewController{
func navigationSetting(){
self.navigationController?.navigationBar.hidden = false
self.navigationController?.navigationBar.barTintColor = UIColor(red: 0.32, green: 0.75, blue: 0.98, alpha: 1)
}
}
//MARK: - 显示数据库信息
extension MessageTableViewController{
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.dataArray.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! ZGJTableViewCell
let model = dataArray[indexPath.row]
cell.backgroundColor = UIColor.clearColor()
cell.nameLabel.text = model.name
cell.sexLabel.text = model.sex
cell.ageLabel.text = model.age
cell.studyNumLabel.text = model.studyNum
cell.majorLabel.text = model.major
cell.selectionStyle = .None
return cell
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let story = UIStoryboard.init(name: "DetailStoryboard", bundle: nil)
let register = story.instantiateInitialViewController() as! DetailViewController
let model = self.dataArray[indexPath.row]
register.model = model
self.navigationController?.pushViewController(register, animated: true)
}
}
- 桥接文件
- cell
- DetailViewController
import UIKit
class DetailViewController: UIViewController {
var model:DataModel? = nil
@IBOutlet weak var nameLabel: UITextField!
@IBOutlet weak var sexLabel: UITextField!
@IBOutlet weak var studyNumLabel: UITextField!
@IBOutlet weak var ageLabel: UITextField!
@IBOutlet weak var majorLabel: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
self.showData()
self.studyNumLabel.delegate = self
self.nameLabel.delegate = self
self.sexLabel.delegate = self
self.ageLabel.delegate = self
self.studyNumLabel.delegate = self
self.majorLabel.delegate = self
self.nameLabel.returnKeyType = .Done
self.ageLabel.returnKeyType = .Done
self.sexLabel.returnKeyType = .Done
self.studyNumLabel.returnKeyType = .Done
self.majorLabel.returnKeyType = .Done
}
}
//显示数据
extension DetailViewController{
func showData(){
self.nameLabel.text = self.model?.name
self.sexLabel.text = self.model?.sex
self.ageLabel.text = self.model?.age
self.studyNumLabel.text = self.model?.studyNum
self.studyNumLabel.tag = 1
self.majorLabel.text = self.model?.major
}
}
//点击修改按钮更新数据库
extension DetailViewController{
///判断信息是否正确函数
func isRight() -> Bool{
if self.nameLabel.text == "" || self.majorLabel.text == ""{
self.notice("信息错误", type: NoticeType.error, autoClear: true)
return false
}
if (Int(self.ageLabel.text!) == nil) || (Int(self.studyNumLabel.text!) == nil){
self.notice("信息错误", type: NoticeType.error, autoClear: true)
return false
}
if self.studyNumLabel.text?.characters.count != 10{
self.notice("信息错误", type: NoticeType.error, autoClear: true)
return false
}
//print("正确")//测试
return true
}
@IBAction func updateAction(sender: UIButton) {
if self.isRight(){
let model = DataModel()
model.name = self.nameLabel.text!
model.sex = self.sexLabel.text!
model.studyNum = self.studyNumLabel.text!
model.age = self.ageLabel.text!
model.major = self.majorLabel.text!
if FMDBManager.defaultManager.updateData(model){
self.notice("数据更新成功", type: NoticeType.success, autoClear: true)
}
else{
self.notice("数据更新失败", type: NoticeType.error, autoClear: true)
}
}
}
}
//MARK: - 删除数据
extension DetailViewController{
@IBAction func deleteAction(sender: UIButton) {
let studyNum = self.studyNumLabel.text
if FMDBManager.defaultManager.deleteData(studyNum!){
self.notice("数据删除成功", type: .success, autoClear: true)
self.navigationController?.popViewControllerAnimated(true)
}
else{
self.notice("数据删除失败", type: .success, autoClear: true)
}
}
}
//MARK: - 代理
extension DetailViewController:UITextFieldDelegate{
func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
if textField.tag == 1{
return false
}
return true
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
self.view.endEditing(true)
return true
}
}
网友评论