2017-04-25 103 views
2

我已經看了很多關於此主題的其他問題。但他們都導致「查看並加載」「視圖並顯示」和「視圖將出現」並且Ive同樣的事情放在模式視圖解除後重新加載表視圖

tableview.reloadData() 

在所有的人,但模態視圖的解僱後仍然不重新加載,直到我終止應用程序,然後再次運行。我已經看到你可以通過通知中心完成這項工作,並且已經看到Here,並且我嘗試了這種方法,但它似乎不適用於我。 感謝您的任何幫助提前!

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") 
} 

} 

這是我想補充的東西

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

,這是我回到第一個VC

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

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

    }else { 

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

    } 
} 
+1

從哪裏得到你的'allPeople'數組?而且,它是如何改變的? –

+0

我遺漏了一些代碼,但它在那裏 –

+0

和它在第二個視圖控制器中更改。 –

回答

0

我將此代碼添加到每個退出賽格瑞

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