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())
}
}
D'où obtenez-vous votre tableau 'allPeople'? Et, comment ça a changé? –
J'ai laissé un peu de code mais c'est –
et il a changé dans le deuxième contrôleur de vue. –