Jasonette / JASONETTE-iOS

📡 Native App over HTTP, on iOS
https://www.jasonette.com
MIT License
5.27k stars 352 forks source link

tab bar disappears after several push transitions #333

Closed darenr closed 6 years ago

darenr commented 6 years ago

reproducible test case:

  1. open this url:
  2. tap an image (doesn't matter which) which (push transitions to a new view)
  3. swipe or click the "<" to head back

repeat this sequence 3-5 times, you'll see that upon going back to the main (tabbed) url the tab bar disappears.

I should add that not every iOS device reproduces this bug, my 7+ does but none of the beta testers on the X see the issue. I also can't reproduce it on the simulator for any device.

gliechtenstein commented 6 years ago

I have been seriously looking into this, but the biggest problem is I am unable to replicate this in any way. I could just come up with random hypotheses and try to "fix" them but that's a horrible and very inefficient solution IMO.

This is not saying "The problem doesn't exist", but at the moment there's no way to solve the problem because I can't replicate the problem. Here's what I've tried:

To move further I think there needs to be more data. Any of the following would be helpful

darenr commented 6 years ago

thanks for looking at this. I can reliably reproduce it, every time, never less than 3 "attempts" and never more than 5. I just did it right now and made a video, you'll see at the end of the video it's back to the main view but without the toolbar. It appears to be timing related, because if I take my time running the sequence it's not happening. Can you try clicking the < (back) button as soon as the view renders, trying to do it as fast as possible makes it happen even on the X (but none of my beta users have noticed this on that phone). I'm running iOS 11.2.6

https://www.dropbox.com/s/ccc49lkqbzzcz33/Video%20Feb%2027%2C%202%2059%2003%20PM.mp4?dl=0

I hope that helps.

gliechtenstein commented 6 years ago

I guess this is why it's helpful to have a video. Watching the video I quickly found that it depends on how quickly you return to the previous view.

I could now replicate the problem and think I have fixed it https://github.com/Jasonette/JASONETTE-iOS/commit/1aba0da97aedf588330663a471915979bbdd0cff

darenr commented 6 years ago

thanks for fixing this. I too wasn't really sure what it was about what I was doing because this originally came in from users and I'm surprised they are causing this because fast forward/backward seems an unlikely user ui sequence unless different phone's performance characteristics make this more likely under normal ui usage. Anyway, thanks for the fix!

darenr commented 6 years ago

I was testing this by trying forward/backward a bunch of times and now what happens - it takes longer than 3-5 times, I must have done 10 times (approx) of forward and backward, now what happens when it returns is that it renders the view without template expansion, see screen shot below

image-1 2

However - I could only reproduce this once in a while and it's such a contrived use case I think I'll just close the issue again.