2017-09-05 4 views
0

Ich hatte Stack über den Fluss und alle Websites, aber nicht in der Lage, Benachrichtigungen zu senden, und ich muss Daten aus dieser Klasse an eine andere Klasse übergeben muss ich den Bool Wert senden, um Validierungen können mir helfen Wie kann ich den Bool-Wert weitergeben?Ich kann die Benachrichtigungen nicht posten

hier ist der Code für sie

 radioSelected = false 
     NotificationCenter.default.addObserver(self, selector: #selector(paymentRadioEnable(n:)), name: NSNotification.Name.init(rawValue: "notification"), object: nil) 
     self.shippingmethodURL() 
     shippingTableView.delegate = self 
     shippingTableView.dataSource = self 
     shippingTableView.rowHeight = UITableViewAutomaticDimension 
     shippingTableView.estimatedRowHeight = shippingTableView.rowHeight 
     // Initialization code 
    } 
    func paymentRadioEnable(n:NSNotification){ 

    } 
    func paymentRadioAction(button : KGRadioButton) { 
     _ = button.center 
     let centralPoint = button.superview?.convert(button.center, to:self.shippingTableView) 
     let indexPath = self.shippingTableView.indexPathForRow(at: centralPoint!) 
     if button.isSelected { 

     } else{ 
      chekIndex = indexPath 
      radioSelected = true 
      self.shippingTableView.reloadData() 
     } 
    } 

das ist eine andere Klasse, zu der ich brauche den Bool Wert schreiben

@IBAction func continueButtonAction(_ sender: Any) { 
     NotificationCenter.default.post(name: NSNotification.Name(rawValue: "notification"), object: nil) 
      if radioSelected == false { 
       let radiobutton = SCLAlertView() 
       _ = radiobutton.showError("Warning", subTitle: "Please select shipping method", closeButtonTitle: "OK") 
      }else{ 
       let storyboard = UIStoryboard(name: "Main", bundle: nil) 
       let addtoCartVC = storyboard.instantiateViewController(withIdentifier: "payment") as! PaymentMethodViewController 
       self.navigationController?.pushViewController(addtoCartVC, animated: true) 
      } 
    } 
+0

Wurde die Beobachterklasse initialisiert? –

+0

Wie kann ich wissen, dass der Beobachter initialisiert wurde? @BalajiKondalrayal –

Antwort

1

Sie überprüfen können an der Zeit, um die Daten in das Objekt senden die Entsendung der Notification

let Daten: NSDictionary = [ "DataKey": "Datavalue"]

NotificationCenter.default.post (name: NSNotification.Name (rawValue: "Mitteilung"), Objekt: data)

Und nach der Einlieferung, können Sie die gleichen Daten in Benachrichtigung Handler bekommen.

+0

Ich muss true oder false nur nicht wie NSDictionary fomat senden @Ajay Kokcha –

+0

Ich neige dazu, die NSNotification API wie folgt zu interpretieren: 'object' der Absender der Benachrichtigung (in diesem Fall' self'), 'userInfo' sind die detaillierten Informationen, die Sie weitergeben möchten (in diesem Fall "Daten"). ** Allerdings **, die meiste Zeit ist der Absender nicht wirklich wichtig und die obige Verwendung ist eine sinnvolle Abkürzung. –

+0

@VamsiKrishnaS In diesem Fall können Sie einfach Ihren booleschen Wert als Argument 'object' übergeben. Die Dokumentation sagt, dass der Parameter in Swift vom Typ Any ist. Daher sollte er eine boolesche Konstante akzeptieren. –

Verwandte Themen