IOS - Swift - hinzufügen von Ziel und handeln zu BarButtonItem die customView

Ich bin erstellen einer benutzerdefinierten Ansicht, mit einem uiimageview als Untersicht. Ich bin dann mit, dass die benutzerdefinierte Ansicht in meiner navigation bar, wie die rightBarButtonItem. Dies funktioniert auf anzeigen, die das richtige Symbol an der richtigen Position, aber aus welchem Grund auch immer die Funktion definiere ich in "action" nie aufgerufen wird, also der Wechsel wird nicht durchgeführt, wenn ich Tippen Sie auf die rightBarButtonItem. Seltsam genug, wenn ich NICHT legen Sie eine benutzerdefinierte Ansicht, sondern Kommentar, dass etwas heraus und setzen Sie einfach einen Titel, target und action für rightItem dann ist die Funktion korrekt durchgeführt. irgendwie fügte hinzu, dass die benutzerdefinierte Ansicht verwirrt mit den Ziel-und action-Eigenschaften, aber ich kann nicht scheinen, um herauszufinden, wie es zu lösen ist. Jede Hilfe wäre sehr geschätzt werden!

//create custom view for right item and set it
    var imageViewRight:UIImageView = UIImageView()
    imageViewRight.frame = CGRectMake(5, 10, 35, 25)
    let rightImage:UIImage = UIImage(named: "cameraIconInactive")!
    imageViewRight.image = rightImage
    var rightView:UIView = UIView()
    rightView.frame = CGRectMake(0, 0, 45, 45)
    rightView.addSubview(imageViewRight)
    var rightItem:UIBarButtonItem = UIBarButtonItem()
   //this line right below is the problem - if I comment it out and replace with a simple rightItem.title = "test" and leave everything else the same, then the method runs properly
    rightItem.customView = rightView
    rightItem.target = self
    rightItem.action = "pushProfileToCamera"
    self.navigationItem.rightBarButtonItem = rightItem

}

func pushProfileToCamera(){
    println("pushing profile to camera")
    self.performSegueWithIdentifier("pushProfileToCamera", sender: nil)
}

EDIT:

saß tatsächlich auf diesen für 24 Stunden und kam mit dieser Lösung, bevor ich sah diese Antwort Anregungen.. irgendeinem Grund sollte ich das nicht tun? Es funktioniert..

//create the custom rightBarButtonItem
    //create the imageView with icon
    var imageViewRight:UIImageView = UIImageView()
    imageViewRight.frame = CGRectMake(5, 10, 35, 25)
    var rightImage:UIImage = UIImage(named: "cameraIconInactive")!
    imageViewRight.image = rightImage
    //put the imageView inside a uiview
    var rightView:UIView = UIView()
    rightView.frame = CGRectMake(0, 0, 45, 45)
    rightView.addSubview(imageViewRight)
    //create the tap gesture recognizer for that uiview
    var rightGestureRecognizer:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "pushProfileToCamera")
    rightView.addGestureRecognizer(rightGestureRecognizer)
    //create the uibarbuttonitem, assign our custom view to it, and insert it in the nav bar!
    var rightItem:UIBarButtonItem = UIBarButtonItem()
    rightItem.customView = rightView
    self.navigationItem.rightBarButtonItem = rightItem

InformationsquelleAutor bkopp | 2014-11-06

Schreibe einen Kommentar