Fenetre pour saisie Mot de passe

Bonsoir,


 


Je vais créer un nouveau viewController dans mon appli mais je voudrais le protéger par un mot de passe, voilà  mon idée c'est :


 


1 bouton dans un viewController qui affiche ce nouveau viewController et automatiquement déclenche une fenêtre pour demander un mot de passe.


 


J'avais pensé, au départ, passer par un message d'alerte mais j'ai l'impression que l'on ne peut pas saisir de texte dans ce type d'instruction.


 


Comment feriez-vous ?


Réponses

  • Joanna CarterJoanna Carter Membre, Modérateur
    Faire un nouveau ViewController pour le mot de passe


  • Faire un nouveau ViewController pour le mot de passe




    +1

  • PatyomPatyom Membre
    août 2017 modifié #4

    Bon, je vais aller dans ce sens


     


    J'ai une question sur les retours de variables d'une fonction : elles sont toujours "let" ?


     


    Je n'arrive pas à  les modifier, j'ai un message comme quoi elles sont immuables


     


    Merci


  • Joanna CarterJoanna Carter Membre, Modérateur
    août 2017 modifié #5

    Ce n'est pas les valeurs renvoyées par les méthodes qui sont immuables, c'est le fait que tu les as mis dans un let.


     


    Si tu veux faire une mutation après que l'on a récupéré, il faut assigner la valeur à  une var.


  • ok, je vois mon erreur


  • Un petit PB avec mon view controller de Mot de passe :


     


    mon raisonnement : dans un viewController j'ai un button qui m'affiche le viewController Mot de passe, ensuite une fois que j'ai saisi le MdP, je clique sur un button "OK" qui me lance le viewController autorisé.


    maintenant, quand je sors de ce dernier viewController, je me retrouve avec la fenêtre de saisie du MdP, Arrgh !!


     


    Le lien entre le Button "OK" du MdP et la fenêtre autorisée est fait avec IB.


     


    je ne comprends pas vraiment

  • J'avoue que j'ai un peu du mal à  comprendre comment tu fais ça sur mac...


    Explique nous un peu comment tu présente tes view controllers s'il te plaiÌ‚t. 


  • Joanna CarterJoanna Carter Membre, Modérateur
    août 2017 modifié #9

    OK, solution :


     


  • PatyomPatyom Membre
    août 2017 modifié #10

    Je viens juste de voir comment sont organisées le différents ViewControllers dans ta miniature, là , je comprends pourquoi ma fenêtre MdP ne s'efface pas. J'avais bien compris qu'il fallait faire cette configuration mais le code ne suivait pas.


     


    Je vais faire tourner ta solution pour voir comment çà  fonctionne 


     


    Merci, c'est une solution qui, je pense, va souvent me servir.


  • Joanna CarterJoanna Carter Membre, Modérateur

    Tu peux améliorer la fenêtre de MdP en faisant :



    typealias CompletionBlock = (PasswordViewController, Bool) -> ()


    class PasswordViewController: NSViewController
    {
    var completionBlock: CompletionBlock?

    @IBAction func accept(_ sender: NSButton)
    {
    completionBlock?(self, true)
    }

    @IBAction func cancel(_ sender: NSButton)
    {
    completionBlock?(self, false)
    }

    override func viewWillAppear()
    {
    super.viewWillAppear()

    view.window?.styleMask.remove(.titled)
    }
    }
Connectez-vous ou Inscrivez-vous pour répondre.