7
votes

Comment vérifier si l'annulation ou l'ajout de bouton est enfoncé dans PKAdDPassesSeviewController

Par défaut Les passes sont chargées dans PkaddPassesViewController . Y a-t-il un moyen de savoir quel bouton est enfoncé sur la vue. XXX

Je souhaite obtenir le titre du bouton enfoncé dans le PKADDPassesViewController . J'ai essayé le code ci-dessous pour accéder au titre, mais je reçois null . xxx


0 commentaires

5 Réponses :


6
votes

Autant que je sache, il n'y a pas, mais vous pouvez toujours essayer de récupérer le col que vous venez d'ajouter avec: xxx

Cela retournera la passe si elle a été ajoutée et nulle Sinon, cela pourrait aider à déduire si une nouvelle passe a été ajoutée ou non.

Notez que, en ajoutant, le bouton droit pourrait afficher «Mise à jour» (si la carte est déjà présente, mais votre version est déjà présente. nouvelles données), ou être désactivée si vous essayez de ré-ajouter une passe en double.


1 commentaires

Honte sur Apple!



4
votes

J'ai utilisé une autre approche pour résoudre le problème ci-dessus. Je comparais le non. des passes déjà présentes dans le livret avec le nouveau numéro de passe après que l'utilisateur a cliqué sur le bouton Ajouter ou Annuler.Ifr augmente Cela signifie que la passe a été ajoutée au livret autrement pas. xxx

// mais en cas de mise à jour de la même passe, le nombre de réussite n'augmente pas l'exécution de la pièce d'autre // si vous frappez soit le bouton Annuler ou mettre à niveau.SO Vous devez avoir besoin de Fournir une logique supplémentaire pour // le suivi.


0 commentaires

3
votes

Essayez ceci, xxx

merci


0 commentaires

2
votes

Swift.4 Version de Karthikeyan's Réponse.

N'oubliez pas de définir le délégué pour votre PKADDPASESESEVIEWNONTROLLER. < / p> xxx


0 commentaires

0
votes

SWIFT 5.2

La modifiée de la passe sera mise à jour lorsqu'il sera ajouté ou ajouté Vous pouvez obtenir le modifiéddate, puis le comparer avec la date actuelle P>

let pkl:PKPassLibrary = PKPassLibrary()
// get the pass to check from the wallet
if let pass = pkl.pass(withPassTypeIdentifier: "pass.com.example.yourapp", serialNumber: "serialNumber"){
  // get the modified date
  if let modifiedDate = pass.value(forKey: "modifiedDate") as? Date{
    let result = modifiedDate.distance(to: Date())
    // check if the modified date is within an interval
    if result.isLess(than: 2){
      // add is pressed
    }else{
      // cancel is pressed
    }
  }
}else{
    // cancel is pressed
}


0 commentaires