2016-06-14 3 views
0

Ich habe Probleme beim Aufruf der Tweet-Funktion. Ich bekomme immer wieder Fehler mit den Parametern. Ich habe auch nur versucht (AnyObject) und bekam Fehler: Argument Typ entspricht nicht erwartet ...Aufruf der Funktion von viewcontroller - Parameter Fehler - Swift2

Ich bin neu zu schnell und nicht sicher, wie man das zum Laufen bringt. Versuchte alles, was mir einfällt. Danke

// from GameScene 
    var vc = ViewController() 
    vc.tweetAction(sender: AnyObject) 
    //error: cannot create single-element tuple with an element label 



    //function in View Controller below 

    @IBAction func tweetAction(sender: AnyObject){ 

    if SLComposeViewController.isAvailableForServiceType(SLServiceTypeTwitter){ 

     let tweetController = SLComposeViewController(forServiceType: SLServiceTypeTwitter) 

     tweetController.setInitialText("I Scored on this app") 

     self.presentViewController(tweetController, animated: true, completion: nil) 
    } 
    else{ 

     let alert = UIAlertController(title: "Accounts", message: "Please log into your twitter to share", preferredStyle: UIAlertControllerStyle.Alert) 

     alert.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Default, handler: nil)) 

     alert.addAction(UIAlertAction(title: "Settings", style: UIAlertActionStyle.Default, handler: { (UIAlertACtion) in 

      let settingsURL = NSURL(string:UIApplicationOpenSettingsURLString) 

      if let url = settingsURL{ 

       UIApplication.sharedApplication().openURL(url) 
      } 
     })) 
    self.presentViewController(alert, animated: true, completion: nil) 
} 
} 

Antwort

0

Sie übergeben einen Typ an Ihren Methodenaufruf anstelle einer Instanz. Sie fügen auch eine Bezeichnung für den ersten Parameter ein, der falsch ist. Versuchen:

vc.tweetAction(self) 
+0

selbst zu ändern scheint, den Code zu brechen, wenn Taste gedrückt. die Zeile ----------------> skView = self.view as! SKView löst den Fehler "Thread1 Signal SIGARBT, –

+0

Was ist der Fehler? Gibt es einen Stack-Trace? –

+0

Fehler" Thread 1: Signal SIGABRT "Die Zeile, die bricht, ist skView = self.view als! SKView', wo ich konfigurieren Die Konsole sagt: "Konnte den Wert des Typs UIVIew nicht an SKView übergeben. Die Schaltfläche ist ein SKSpriteNode, wenn dies einen Unterschied macht. –

0

Try Absender Parametertyp von AnyObject zu UILabel

var vc = ViewController() 
vc.tweetAction(yourUILabelInstance) 

zu ändern Und vergessen Sie nicht tweetAction Funktion als auch

@IBAction func tweetAction(sender: UILabel){ 
... 
} 
Verwandte Themen