2017-04-25 2 views
2

J'ai regardé beaucoup d'autres questions sur ce sujet. Mais ils mènent tous à la même chose « vue ne charge » « vue ne semble » et « vue apparaît » et Ive misrecharger vue de la table après la vue modale renvoi

tableview.reloadData() 

dans tous mais après le rejet de la vue modal ne fonctionne toujours pas recharger jusqu'à ce que je termine l'application, puis je cours à nouveau. J'ai vu que vous pouvez le faire avec le centre de notification et ai vu que Here et j'ai essayé cette méthode mais cela n'a pas semblé fonctionner pour moi. Merci pour toute aide à l'avance !!!

import UIKit 

class mainScreen: UIViewController, UITableViewDelegate, UITableViewDataSource { 
@IBOutlet weak var tableview: UITableView! 


func numberOfSections(in tableView: UITableView) -> Int { 
    return 1 
} 
// MARK: - Table View Setup 
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> 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) -> 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") 
} 

} 

c'est là que je voudrais ajouter des choses

@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() 
} 

et c'est là que je reviens à la première VC

@IBAction func BackPressed(_ sender: UIButton) { 
    if isInMain == true { 

     performSegue(withIdentifier: "FromAddToMain", sender: UIButton()) 

    }else { 

     performSegue(withIdentifier: "FromAddToGroup", sender: UIButton()) 

    } 
} 
+1

D'où obtenez-vous votre tableau 'allPeople'? Et, comment ça a changé? –

+0

J'ai laissé un peu de code mais c'est –

+0

et il a changé dans le deuxième contrôleur de vue. –

Répondre

0

J'ai ajouté ce code à chaque Segue de sortie

theAssignments = UserDefaults.standard.array(forKey: whatGroup + "Assignments") as! [String]