[TIMOB-25228] iOS: Trying to open a second Ti.UI.iPad.Popover will crash the app
GitHub Issue | n/a |
Type | Bug |
Priority | Critical |
Status | Open |
Resolution | Unresolved |
Affected Version/s | Release 6.1.2, Release 8.0.0 |
Fix Version/s | Release 6.4.0 |
Components | iOS |
Labels | 6.1.2, engSchedule, hyperloop |
Reporter | Mark Henderson |
Assignee | Vijay Singh |
Created | 2017-09-05T07:39:32.000+0000 |
Updated | 2019-05-13T21:01:19.000+0000 |
Description
It used to be in previous versions of the SDK, certainly pre-Hyperloop that if you tried to show a second Popover it would automatically close the original one. Now it crashes the whole app everytime!
I've already re-written my app with a PopoverManager that keeps a pointer to the Popover and if it exists, hides it, nulls it then 200ms later will spawn a new one, otherwise it will just spawn a new one.
So the work around is easy enough, but I had to do quite a bit of re-writing for this.
Attached is a small example that re-creates the issue.
Click 1 then 2 = Crash
Click 3 then 4 as many times as you want = No Crash
Attachments
File | Date | Size |
app.js | 2017-09-05T07:39:00.000+0000 | 1391 |
Thank you for reporting this issue! While we are trying to reproduce this issue, I am still not sure how Hyperloop plays into this crash, as you are not using it anywhere in the code. Hyperloop was released in 5.5.0 and lives independently from the Ti.* methods. I will get back to you once I found out what's causing the issue.
I was really thinking it would be the
run-on-main-thread
property blocking it, but it isn't (it's smart enough to not block the UI), so it's happening with both kroll- and main-thread. I am wondering when the last time it worked was. Investigating for the next iOS release (6.2.0 will be released this week already, 6.3.0 is iOS 11-only, so 6.4.0 will be the candidate). But as we will likely fix it earlier, hopefully this week, you can already patch your 6.1.x SDK early. I hope that helps you!