@IBAction func addInformation(_ sender: UIBarButtonItem) {
// check rateHourly has value
if let editedRateHourly = rateHourly.text {
print("editedRateHourly condition is \(editedRateHourly)")
if editedRateHourly != ""{
print("not nil")
// check edit value is number?
let num = Int(editedRateHourly)
if num != nil {
print("is num")
// add to database
UserDefaults.standard.set(editedRateHourly, forKey: "\(findDate())")
UserDefaults.standard.synchronize()
// back to last viewController
navigationController?.popToRootViewController(animated: true)
}else{
print("not num")
print("error alert push!!")
popErrorAlert()
}
}else {
print("nil")
print("editedRateHourly condition is nil")
popErrorAlert()
}
}
}
@IBAction func cannelInformationPage(_ sender: UIBarButtonItem) {
navigationController?.popToRootViewController(animated: true)
}
Je veux créer une nouvelle page d'édition simple. C'est deux problème pour moi que lorsque je termine l'édition if-else va vérifier que la condition est correcte ou non, puis enregistrer les données popToRootViewControlle. Quand je finis l'édition je clique sur "addInformation" BarButtonItem et je me trompe d'interface. l'autre faux est quand je clique sur editField mais je ne saisis aucune condition. Et puis je clique sur "cannelInformationPage" UIBarButtonItem. Il se trompe aussi.IOS navigationController? .popToRootViewController a tort
On ne sait pas ce que vous voulez dire dans ** Je me trompe d'interface **? Si le contrôleur doit afficher les informations mises à jour à partir de UserDefaults, vous devez l'actualiser manuellement, par exemple sur viewWillAppear –
https://i.stack.imgur.com/E2tmE.png Je veux dire quand je clique sur "cannelInformationPage" ou "addInformation" .le code devrait être exécuté "navigationController? .popToRootViewController (animé: true)". mais il pousse le mauvais –
Votre application a-t-elle planté? Selon l'image ci-jointe, votre application s'est brisée à cause de certaines raisons et pas mal l'interface utilisateur. – Surjeet