I'm an extreme beginner at developing iOS applications, so be easy on me :)
I'm creating a core data base where you can add records, then view them on Xcode using Swift 3. I am having some trouble storing/displaying the segmented control for male/female. I can get the text fields and the labels to display correctly but for some reason can't get this working.
friendsViewController.swift
//
// friendsViewController.swift
//
//
// Created by on 11/10/17.
// Copyright © 2017 . All rights reserved.
//
import UIKit
import CoreData
class friendsViewController: UIViewController {
//OUTLETS
@IBOutlet weak var firstName: UITextField!
@IBOutlet weak var lastName: UITextField!
@IBOutlet weak var genderSegControl: UISegmentedControl!
@IBOutlet weak var ageStepper: UIStepper!
//AGECOUNT
@IBOutlet weak var ageLabel: UILabel!
@IBOutlet weak var address: UITextField!
var context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
//actions
@IBAction func ageStepperStep(_ sender: UIStepper) {
let step = Int(sender.value) // using an integer variable
ageLabel.text = String(step)
// label1.text = Int(sender.value).description
// another way without using any integer variable
}
//SAVE FRIEND BUTTON
@IBAction func saveFriendBtn(_ sender: Any) {
if firstName.text != "" && lastName.text != "" {
var gender : String?
if self.genderSegControl.selectedSegmentIndex == 0 {
gender = "male"
}
else {
gender = "female"
}
let newFriend = NSEntityDescription.insertNewObject(forEntityName: "Friends", into: context)
newFriend.setValue(self.firstName.text, forKey: "firstName")
newFriend.setValue(self.lastName.text, forKey: "lastName")
newFriend.setValue(self.address.text, forKey: "address")
newFriend.setValue(self.ageLabel.text, forKey: "age")
newFriend.setValue(gender!, forKey: "gender")
//SAVE THE CONTEXT
do {
try context.save()
}
catch{
print(error)
}
}
else {
print("please enter your first and last name!")
}
}
} //end class
friendslistViewController.swift (screen that displays all records in the cells)
//
// friendslistViewController.swift
//
//
// Created by on 11/10/17.
// Copyright © 2017. All rights reserved.
//
import UIKit
import CoreData
class friendslistViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
//outlets
@IBOutlet weak var tableView: UITableView!
var userArray:[Friends] = []
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
self.fetchData()
self.tableView.reloadData()
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return userArray.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
//save first users data into array
let name = userArray[indexPath.row]
cell.textLabel!.text = name.firstName! + " " + name.lastName! + " " + name.age! + " " +
name.gender! + " " +
name.address!
return cell
}
func fetchData(){
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
do{
userArray = try context.fetch(Friends.fetchRequest())
}
catch{
print(error)
}
}
} //end class