2016-11-04 3 views
0

Es ist einfach und sollte funktionieren out of the box, so dass ich keine Ahnung habe, warum es nicht funktioniert. Ich habe versucht, den Link zu IBAction zu entfernen und neu geschrieben - das Log zeigt nicht an, dass es geklickt wurde. Seltsam.IBAction für eine Standard-Taste funktioniert nicht

enter image description here

hier ist der Code:

@IBAction func onManClicked(sender: AnyObject) { 
    NSLog("onManClicked") 
    person.gender = 1 
    genderUpdate() 

} 

Der NSLog Teil nie ausgelöst. Also keine der vier Tasten die ich in diesem ViewController habe antworten. Wo könnte das Problem sein?

Dies ist, wie ich diese ganze Ansicht hinzufügen - ich denke, das ist das Problem.

let vc = PersonalDialog(nibName :"PersonalDialog", bundle: nil, section: section, position: position, person: Person()) 
    vc.view.frame = UIScreen.mainScreen().bounds 
    parentVC.view.addSubview(vc.view) 

Ich bin neu in iOS Entwicklung, weiß ich nicht heiß es richtig zu machen - ich verstehe jetzt, dass ich ein Subview hinzugefügt, aber der Controller dafür nicht hinzufügen. Wahrscheinlich. Es ruft jedoch die viewDidAppear Methode

Antwort

1

Haben Sie versucht, zu überprüfen, ob die Schaltfläche Interaktion aktiviert ist noch seine übergeordnete Ansicht? War es von einigen Objekt- oder anderen Ansichten überlappt?

Ich habe dies schon einmal erlebt und habe das alles überprüft und das Problem etwas behoben.

0

Sie sagen:

Ich habe versucht, Link zu IBAction zu entfernen und neu geschrieben wieder

So ... Versuchen Sie, die Verbindung im Interface Builder zu löschen und dann wieder an (Sie wahrscheinlich schon haben done that)

Eine andere Sache, auf die man achten sollte.

Wenn ich in Swift 3, eine Methode wie folgt erstellen:

@IBAction func buttonClicked(sender: AnyObject) { 
     print("hello") 
    } 

und dann versuchen, das verbinden dann die Verbindung sieht wie folgt aus

enter image description here

Beachten Sie die „mit Absender "Teil, den ich nicht hinzugefügt habe, aber der Teil der neuen Swift 3 Parameter Benennung ist.

Um das zu vermeiden, muss ich diese meine Methode umbenennen:

@IBAction func buttonClicked(_ sender: AnyObject) { 
    print("hello") 
} 

(die _ vor Absender bemerken)

Und wenn ich wieder dann:

enter image description here

Dinge sehen wie erwartet aus. Vielleicht hat dich das auch gebissen? Interface-Builder auf der Suche nach einer @IBAction namens onManClickedWithSender und Sie definieren eine @IBAction namens onManClicked.

Hoffe das hilft dir.

+0

ja, ich löschte auch Referenzen von IB. Sie können das Bild betrachten, es ruft die onManClicked-Methode auf, wie im Code, es ist auch OnManClicked-Methode. Keine der 4 Tastenklicks funktioniert. Ich habe meinen Beitrag bearbeitet, um zu zeigen, wie diese Ansicht hinzugefügt wird. Vielleicht ist das das Problem? Ich bin neu in iOS und schnell. – user2976267

+0

Könnten Sie versuchen, es umzubenennen in 'onManClicked (_ sender: AnyObject)' (beachten Sie die _) – pbodsk

+0

ja und es zeigt eine Warnung "Extraneous '_' in Parameter: 'Absender' hat keinen Schlüsselwort Argumentnamen. Können Sie plz betrachten Das Ende meines editierten Beitrags - vielleicht ist das Problem da? – user2976267