title: reload table view after modal view dismissal
body: <p>I've looked at a lot of other questions on this subject. But they all lead to the same thing "view did load" "view did appear" and  "view will appear" and Ive put </p>
  
  <pre><code>tableview.reloadData()
  </code></pre>
  
  <p>in all of them but after dismissal of the modal view it still doesn't reload till I terminate the app and then I run again. I have seen that you can do this with notification center and have seen that <a href="https://stackoverflow.com/questions/25921623/how-to-reload-tableview-from-another-view-controller-in-swift">Here</a> and I tried that method but it didn't seem to work for me.
  Thanks for any Help in advance!!!</p>
  
  <pre><code>import UIKit
  
  class mainScreen: UIViewController, UITableViewDelegate, UITableViewDataSource {
  @IBOutlet weak var tableview: UITableView!
  
  
  func numberOfSections(in tableView: UITableView) -&gt; Int {
      return 1
  }
  // MARK: - Table View Setup
  func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -&gt; Int {
      if allPeople.count == theAssignments.count {
          return allPeople.count
      }else {
          print("else in number of rows in section BAD")
          return allPeople.count
      }
  }
  
  func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -&gt; UITableViewCell {
      let cell = tableView.dequeueReusableCell(withIdentifier: "PeopleTVCell", for: indexPath)
      cell.textLabel?.text = theAssignments[indexPath.row]
      cell.detailTextLabel?.text = allPeople[indexPath.row]
      return cell
  }
  // MARK: - System setup
  override func viewDidLoad() {
      super.viewDidLoad()
  
      // Do any additional setup after loading the view, typically from a nib.
      tableview.allowsSelection = false
      /////////here
      tableview.reloadData()
  }
  override func viewWillAppear(_ animated: Bool) {
      ////////here
      tableview.reloadData()
  }
  
  override func viewDidAppear(_ animated: Bool) {
  
      let NamesObject = UserDefaults.standard.object(forKey: "Name" + whatGroup)
  
      if let tempItems = NamesObject as? [String] {
  
          allPeople = tempItems
  
          print("saved data in main (Name)")
      }
      let AssignmentObject = UserDefaults.standard.object(forKey: whatGroup + "Assignment")
  
      if let tempItems = AssignmentObject as? [String] {
  
          theAssignments = tempItems
  
          print("saved data in main (Assignments)")
      }
      ////////here
      tableview.reloadData()
  }
  // MARK: - the Exit Segue
  @IBAction func exitSegue(segue: UIStoryboardSegue) {
      /////////here
      tableview.reloadData()
      isAddingName = 2
      print("Exited to main")
  }
  
  }
  </code></pre>
  
  <p>this is where I would add things</p>
  
  <pre><code>@IBAction func saveButton(_ sender: UIButton) {
      if isInMain == true {
  
          if IsAddingAssignment == true {
  // MARK: Add Assignment
              let AssignmentObject = UserDefaults.standard.object(forKey: whatGroup + "Assignment")  as? [String]
  
              var Assignment: [String]
  
              if let tempItems = AssignmentObject {
  
                  Assignment = tempItems
  
                  Assignment.append("\(EnteredObjectTextFeild.text!)")
  
                  print(Assignment)
  
              } else {
  
                  Assignment = [EnteredObjectTextFeild.text!]
                  print("user defaults error 2")
              }
  
              UserDefaults.standard.set(Assignment, forKey: whatGroup + "Assignment")
  
              EnteredObjectTextFeild.text = ""
          }else {
  // MARK: Add Name
              if AllNames.contains("\(EnteredObjectTextFeild.text!)"){
                  if namesForEachGroup.contains(EnteredObjectTextFeild.text!) {
                      EnteredObjectTextFeild.text = ""
                      AlertAction(Title: "Name Exists", Message: "This name already exists in this group", alerTitle: "OK")
                  }else {
                      addNameToGroup()
                      EnteredObjectTextFeild.text = ""
                  }
              }else {
                  let NameObject = UserDefaults.standard.object(forKey: "Name")  as? [String]
  
                  var Name: [String]
  
                  if let tempItems = NameObject {
  
                      Name = tempItems
  
                      Name.append("\(EnteredObjectTextFeild.text!)")
  
                      print(Name)
  
                  } else {
  
                      Name = [EnteredObjectTextFeild.text!]
                      print("user defaults error 3")
                  }
  
                  UserDefaults.standard.set(Name, forKey: "Name")
                  addNameToGroup()
                  EnteredObjectTextFeild.text = ""
                  NamePicker.reloadAllComponents()
                  AsignmentPicker.reloadAllComponents()
              }
  
          }
          }else if isInMain == false {
  // MARK: Add Group
          if allGroups.contains("\(EnteredObjectTextFeild.text!)"){
                  EnteredObjectTextFeild.text = ""
                  AlertAction(Title: "Group Exists", Message: "This Group already exists", alerTitle: "OK")
          }else {
              let groupsObject = UserDefaults.standard.object(forKey: "Groups")  as? [String]
  
              var groups: [String]
  
              if let tempItems = groupsObject {
  
                  groups = tempItems
  
                  groups.append(EnteredObjectTextFeild.text!)
  
                  print(groups)
  
              } else {
  
                  groups = [EnteredObjectTextFeild.text!]
                  print("Bad")
              }
  
              UserDefaults.standard.set(groups, forKey: "Groups")
  
              EnteredObjectTextFeild.text = ""
  
  
          }
          NamePicker.reloadAllComponents()
          AsignmentPicker.reloadAllComponents()
      }
      NamePicker.reloadAllComponents()
      AsignmentPicker.reloadAllComponents()
      }
  // MARK: Add Name func
  func addNameToGroup(){
      let nameObject = UserDefaults.standard.object(forKey: "Name" + whatGroup)  as? [String]
  
      var NameForGroup: [String]
  
      if let tempItems = nameObject {
  
          NameForGroup = tempItems
  
          NameForGroup.append("\(EnteredObjectTextFeild.text!)")
  
          print(NameForGroup)
  
      } else {
  
          NameForGroup = [EnteredObjectTextFeild.text!]
          print("user defaults error 4")
      }
  
      UserDefaults.standard.set(NameForGroup, forKey: "Name" + whatGroup)
      namesForEachGroup = NameForGroup
      print("saved to group")
      EnteredObjectTextFeild.text = ""
      NamePicker.reloadAllComponents()
      AsignmentPicker.reloadAllComponents()
  }
  </code></pre>
  
  <p>and this is where I get back to the first VC</p>
  
  <pre><code>@IBAction func BackPressed(_ sender: UIButton) {
      if isInMain == true {
  
          performSegue(withIdentifier: "FromAddToMain", sender: UIButton())
  
      }else {
  
          performSegue(withIdentifier: "FromAddToGroup", sender: UIButton())
  
      }
  }
  </code></pre>