Par défaut Les passes sont chargées dans Je souhaite obtenir le titre du bouton enfoncé dans le PkaddPassesViewController code>. Y a-t-il un moyen de savoir quel bouton est enfoncé sur la vue.
PKADDPassesViewController code>. J'ai essayé le code ci-dessous pour accéder au titre, mais je reçois
null code>. P>
5 Réponses :
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: 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. p> 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. p> p>
Honte sur Apple!
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. // 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. P> p>
Essayez ceci, merci p> p>
Swift.4 Version de Karthikeyan's Réponse.
N'oubliez pas de définir le délégué pour votre PKADDPASESESEVIEWNONTROLLER. < / p>
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 }