Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-25228] iOS: Trying to open a second Ti.UI.iPad.Popover will crash the app

GitHub Issuen/a
TypeBug
PriorityCritical
StatusOpen
ResolutionUnresolved
Affected Version/sRelease 6.1.2, Release 8.0.0
Fix Version/sRelease 6.4.0
ComponentsiOS
Labels6.1.2, engSchedule, hyperloop
ReporterMark Henderson
AssigneeVijay Singh
Created2017-09-05T07:39:32.000+0000
Updated2019-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

FileDateSize
app.js2017-09-05T07:39:00.000+00001391

Comments

  1. Hans Knöchel 2017-09-05

    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.
  2. Hans Knöchel 2017-09-05

    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!

JSON Source