2016-07-22 12 views
0

Meine nav_bar sollte das Bild des angemeldeten Benutzers rechts zeigen. Wenn Sie darauf klicken, sollte ein Profil-Bildschirm geöffnet werden.Remote-Image kann nicht zur nav_bar-Schaltfläche in ProMotion hinzugefügt werden

Es funktioniert gut mit einem neuen Benutzer, der noch kein Profilbild hochgeladen hat, da es ein lokales Platzhalterbild verwendet, aber wenn Auth.current_user["image"] eine URL enthält, die auf das REMOTE-Profilbild des Benutzers verweist, funktioniert es nicht mehr.

def on_load 

image_view = UIImageView.alloc.initWithFrame(CGRectMake(0, 0, 50, 50)) 
image_view.contentMode = UIViewContentModeScaleAspectFit 
image_view.setImageWithURL(Auth.current_user["image"]) 

set_nav_bar_button :right, 
    image: Auth.current_user["image"].nil? ? image.resource("icon_user_50x50.png") : image_view, 
    action: :open_profile 

end 

Wenn ein Remote-Image existiert, funktioniert dieser Code nicht richtig. Es zeigt das Bild, aber nichts passiert, wenn es angetippt wird.

Wenn ich diese Zeile austauschen:

image: Auth.current_user["image"].nil? ? image.resource("icon_user_50x50.png") : image_view, 
for this one: 

image: Auth.current_user["image"].nil? ? image.resource("icon_user_50x50.png") : image.from_view(image_view), 

Klopfen/Klick funktioniert jetzt, aber kein Bild angezeigt wird.

Jede Hilfe wäre willkommen.

Antwort

0

Wenn Sie eine benutzerdefinierte UIImageView für eine Schaltfläche in einer nav_bar verwenden, verliert die Schaltfläche die Klickfunktionalität. Sie können es erhalten, indem Sie die folgenden Zeilen hinzufügen:

image_view.setUserInteractionEnabled(true) 
image_view.addGestureRecognizer(UITapGestureRecognizer.alloc.initWithTarget(self, action: :open_profile))