2017-01-06 1 views
2

Bonjour je développe l'application en utilisant swift dans mon application Je veux utiliser l'usage de toast message et toast activité donc j'ai suivi le lien: https://github.com/scalessec/Toast-Swift. Je suis capable d'utiliser la méthode du contrôleur de vue, cela fonctionne bien, mais je ne peux pas utiliser les méthodes de délégué dans l'application.Comment utiliser la méthode toast dans les fonctions de délégué de l'application en utilisant swift

Mon code dans mon délégué app:

func loadJsonData(){ 

    self.view.makeToastActivity(.center) 

} 

Le code ci-dessus mentionné ne fonctionne pas parce que délégué de l'application n'a pas d'opinion membre ... s'il vous plaît aidez-moi à utiliser dans mon délégué app.

+0

pourquoi utilisez-vous pas la fenêtre instances dans le délégué de l'application? –

+0

Dans l'objet fenêtre de délégué App ont également une propriété de vue. –

+0

comment utiliser la fenêtre pour faire du pain grillé pouvez-vous donner un exemple – user7333282

Répondre

1

essayer cette s'il vous plaît, à travers ce que vous pouvez obtenir le contrôleur haut de votre application et vous pouvez ajouter du pain grillé sur le contrôleur haut

let win:UIWindow = UIApplication.shared.delegate!.window!! 
win.currentViewController()?.view 
+0

je viens d'utiliser self.window? .currentViewController() ?. view.makeToastActivity (.Center) .. cela fonctionne grâce – user7333282

+0

vous avez un '!' Supplémentaire après la fenêtre. ..Also, il est préférable de le déballer en toute sécurité. Peut-être que cette méthode est appelée lorsque l'application est en arrière-plan, c'est à dire qu'il n'y a pas de fenêtre (comme indiqué [ici] (http://stackoverflow.com/a/41334428/5175709)) et que l'application se bloque ... – Honey

3

AppDelegate est pour traiter les choses comme initialisant l'application, la fermeture de l'application, les notifications, etc.

Qu'est-ce que vous voulez faire est:

  • Aller à la table de montage (nom Main.storyboard)
  • Ajouter un ViewController au story-board (drag it from the bottom right)
  • Créez un fichier Swift et appelez-le FirstView, par exemple, et ajoutez le code suivant

FirstView.swift

import UIKit 

class FirstView: UIViewController 
{ 
    override func viewDidLoad() 
    { 
     self.view.makeToastActivity(.center); 
    } 
} 
  • Go retour au storyboard
  • Cliquez sur le ViewController que vous venez de créer
  • Regardez en haut à droite de l'écran et il y aura six petites icônes. Cliquez sur le tiers en partant de la gauche et tapez FirstView dans le premier champ nommé "Class" (see attached picture).

Remarque: assurez-vous de sauvegarder votre fichier FirstView.swift ou cela ne fonctionnera pas.

2

Que diriez-vous d'un Toast personnalisé à la place? Celui qui est beaucoup plus séduisant, répond à vos besoins et ne nécessite aucune bibliothèque ou des implications complexes?

Maintenant, nous allons essayer le bit de code suivant

func sailAwayLabelAction(){ 

    // here creating a rectangle with certain dimensions you can easily manipulate 
    let rect = CGRect(origin: CGPoint(x: self.view.frame.size.width/2 - 150,y :self.view.frame.size.height-100), size: CGSize(width: 300, height: 35)) 


//here creating and manipulating the attributes of your text, i.e color,alignment etc.. 
let toastLabel = UILabel(frame: rect) 
toastLabel.backgroundColor = UIColor.orange 
toastLabel.textColor = UIColor.white 
toastLabel.textAlignment = NSTextAlignment.center; 
toastLabel.text = "This is my customized Toast !" 
toastLabel.layer.cornerRadius = 10; 
toastLabel.clipsToBounds = true 

//first pop the toast into our view 
self.view.addSubview(toastLabel) 

//then after 1 sec + 1 sec delay, animate the entire toastLabel out. 
UIView.animate(withDuration: 1, delay: 1, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseOut, animations: { 

    toastLabel.alpha = 0.0 

}) 



} 

Chaque fois que vous activez la fonction précédente, il devrait rendre quelque chose de semblable à cela,

enter image description here

+0

très bien, la seule chose est que je pense que les messages toast ne sont généralement pas destinés à être animés à travers le temps. Quelque chose doit déclencher, comme si votre réseau est connecté à nouveau ou si votre accès à l'emplacement fonctionne à nouveau, etc – Honey

+0

pourquoi pas, ajouter l'écouteur d'arrière-plan dans l'appdelegate pour surveiller l'accessibilité du réseau, une fois le réseau indisponible rendre votre personnel et personnalisé toast ou même des animations dans mon cas. – Alexander