// LoginViewController.swift
// coreDataPractice11
import UIKit
import CoreData
class ViewController: UIViewController {
@IBOutlet var lblTitle: UILabel!
@IBOutlet var txtemail: UITextField!
var context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
var temp = true
var emp = [Employee]()
@IBOutlet var txtpassword: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func viewWillAppear(_ animated: Bool) {
do {
emp = try context.fetch(Employee.fetchRequest())
}catch{
print("faild")
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func btnregister(_ sender: UIButton) {
let SignupVc : SignUPViewController = self.storyboard?.instantiateViewController(withIdentifier: "SignUPViewController") as! SignUPViewController
self.navigationController?.pushViewController(SignupVc, animated: true)
}
@IBAction func btnlogin(_ sender: UIButton) {
print(emp.count)
for i in 0...emp.count - 1
{
print(emp[i].name!)
print(emp[i].email!)
print(emp[i].password!)
if txtemail.text == emp[i].email && txtpassword.text == emp[i].name
{
temp = true
break
}
else
{
temp = false
}
}
if temp == false {
let alert = UIAlertController(title: "invalid" , message: "invalid User email and password", preferredStyle: .alert)
let okalert = UIAlertAction(title: "OK", style: .default)
{
(action) in
self.resignFirstResponder()
}
alert.addAction(okalert)
self.present(alert, animated: true, completion: nil)
}
else
{
print("done")
}
let HomeVc : HomeViewController = self.storyboard?.instantiateViewController(withIdentifier: "HomeViewController") as! HomeViewController
self.navigationController?.pushViewController(HomeVc, animated: true)
}
}
// SignUPViewController.swift
// coreDataPractice11
import UIKit
import CoreData
class SignUPViewController: UIViewController {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
@IBOutlet var lblTitle: UILabel!
@IBOutlet var txtName: UITextField!
@IBOutlet var txtEmail: UITextField!
@IBOutlet var password: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func btnSignUp(_ sender: UIButton) {
let emp = Employee(context: context)
emp.name = txtName.text
emp.email = txtEmail.text
emp.password = password.text
(UIApplication.shared.delegate as! AppDelegate).saveContext()
self.navigationController?.popViewController(animated: true)
}
}
// HomeViewController.swift
// coreDataPractice11
import UIKit
import CoreData
class HomeViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {
@IBOutlet var tblView: UITableView!
var context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
var emp = [Employee]()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func viewWillAppear(_ animated: Bool) {
do{
emp = try context.fetch(Employee.fetchRequest())
}catch{
print("faild")
}
self.tblView.reloadData()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return emp.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell : HomeTableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell") as! HomeTableViewCell
cell.lblName.text = emp[indexPath.row].name
cell.lblEmail.text = emp[indexPath.row].email
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let row1 = indexPath.row
print("row= \(row1)")
let EditVc : EditViewController = self.storyboard?.instantiateViewController(withIdentifier: "EditViewController") as! EditViewController
EditVc.ab = row1
self.navigationController?.pushViewController(EditVc, animated: true)
}
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
let dataRow = self.emp[indexPath.row]
if editingStyle == .delete
{
self.emp.remove(at: indexPath.row)
self.context.delete(dataRow)
do{
try self.context.save()
}catch
{
print(error.localizedDescription)
}
self.tblView.reloadData()
}
}
}
// EditViewController.swift
// coreDataPractice11
import UIKit
import CoreData
class EditViewController: UIViewController {
@IBOutlet var lbltitle: UILabel!
@IBOutlet var txtName: UITextField!
@IBOutlet var txtPassword: UITextField!
@IBOutlet var txtEmail: UITextField!
var context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
var ab = Int()
var emp = [Employee]()
override func viewDidLoad() {
super.viewDidLoad()
do{
emp = try context.fetch(Employee.fetchRequest())
}catch
{
print("failed")
}
print("ab= \(ab)")
txtName.text = emp[ab].name
txtEmail.text = emp[ab].email
txtPassword.text = emp[ab].password
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func btnDone(_ sender: UIButton) {
emp[ab].name = txtName.text
emp[ab].email = txtEmail.text
emp[ab].password = txtPassword.text
(UIApplication.shared.delegate as! AppDelegate).saveContext()
self.navigationController?.popViewController(animated: true)
}
}
Comments
Post a Comment