0

My nav_bar should show the logged_in user's picture on the right and clicking on it should open a Profile screen.

It works fine with a new user that has not uploaded a profile picture yet, since it's using a local placeholder image, but when Auth.current_user["image"] contains an URL pointing to the user's REMOTE profile image, it no longer works.

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

When a remote image exists, this code does not work properly. It shows the image, but nothing happens when it is tapped / clicked.

If I exchange this line:

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),

tapping / clicking now works, but no image is shown.

Any help would be appreciated.

1 Answers1

0

When using a custom UIImageView for a button in a nav_bar, the button loses click functionality. You can get it back by adding the following lines:

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