J'ai un problème avec mon application. Scénario est simple, après la création de compte avec succès, je ne voudrais pas rejeter la page en cours ni accéder à la page de connexion. Mon storyboard ressemble à ceci:
Après la création de compte réussie, j'ai une fenêtre contextuelle avec quelques informations sur son ok, nous vous envoyons un courriel de vérification et après Ce popup je veux aller à la page deuxième de gauche - c'est ma page d'application principale (maintenant appelée "contrôleur d'affichage"). P>
J'ai essayé de rejeter la fenêtre, mais je n'ai aucun effet là-bas, il ne peut que rejeter ma fenêtre contextuelle.
Lorsque j'essaie de rediriger, alors j'ai un problème avec le bouton arrière lorsque vous appuyez sur enfoncé, cela conduit à une page d'inscription. Il y a un certain code: p> si j'ajoute ceci: p> self.view.window! .RootViewController? .DISMISS (animé: faux, achèvement: nil) p> Après alerte, il ne ferme que l'alerte, avant d'alerter, il ne fait rien (comme le renvoi). P> P>
3 Réponses :
Eh bien, vous utilisez un contrôleur de navigation, pour "présent" un nouveau contrôleur d'affichage, vous devez le pousser, par exemple.
override func viewDidLoad {
super.viewDidLoad()
self.navigationItem.hidesBackButton = true
let newBackButton = UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.Bordered, target: self, action: "back:")
self.navigationItem.leftBarButtonItem = newBackButton
}
func back(sender: UIBarButtonItem) {
//in this part you can move to other view controller, examples
// Go back specific view in your navigation controller
for controller in self.navigationController!.viewControllers as Array {
if controller.isKind(of: NAMECLASS_OFYOUR_VIEWCONTROLLER.self) {
_ = self.navigationController!.popToViewController(controller, animated: true)
break
}
}
// Perform your custom actions
// ...
// Go back to the previous ViewController
self.navigationController?.popViewControllerAnimated(true)
}
Sélectionnez et pop à la vue principale Vous pouvez utiliser un gestionnaire d'action bouton d'alerte.
self.present(alert, animated: true, completion: {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.01) {
self.navigationController?.popToRootViewController(animated: true)
}
})
Im apprentissage rapide - pas sûr de ce que je dois mettre sous
Je l'ai fait avec votre première idée comment le faire, de toute façon c'est bon de savoir comment naviguer, pouvez-vous me dire ce que je devrais écrire sous
Vous devez ajouter une action à votre bouton OK
@Andresgomes Si je l'ajoute, j'ai un problème avec le bouton arrière et je ne devrais pas pouvoir entrer dans la page d'inscription si je me suis connecté, mais si j'appuyais sur Back IM redirigé pour inscrire la page
NOP, lorsque vous appuyez sur votre bouton OK, l'application accédera à LoginViewController, sa facilité, vérifiez comment votre contrôleur de vue Poussez-vous avec le contrôleur de navigation, lorsque l'application est dans LoginViewController, vous devez configurer le bouton arrière, sinon, l'application. revenir à registerviewcontroller
@Andreeasgomes - Self.Performsegue (Sorsidier: "Test", expéditeur: auto); - J'ajoute que ceci au bouton OK et après avoir appuyé sur, je suis sur une page valide, mais j'ai un bouton de retour et si j'appuie sur IT IT, je suis à nouveau sur la page d'inscription - Comment éviter cela?
@heep - N'utilisez pas l'action du bouton «OK». Il ajoutera plus de vues sur le contrôleur de navigation. Pop sur votre contrôleur d'affichage nécessaire (vue principale) de la vue actuelle et rejeter l'alerte dans l'action d'alerte.