I have an app that has been working correctly, however recently toggle visibility has stopped working (not sure which update caused this; I will try to do some more research to narrow that down.) I do know that the issue exists in 3.18091.15 (possibly earlier versions as well).
The app has a field / toggle that when true shows other fields / toggles. Such that if "Other Permits" is true / yes, then a list of other toggles for the various permits is shown. By default Other Permits is false / no and the other fields are hidden (as shown below).
Upon toggling the field to yes the other fields are shown (as shown below).
Upon toggling the field to no, and then yes again the other fields are shown, but their toggles are not (mostly, one toggle does appear) (as shown below).
Setting Improved App Rendering off resolves the issue. Setting it back on again reintroduces the issue.
For reference, the visible field on one of these toggles simply references the Other Permits toggle's value.
This issue is witnessed on an iOS device. It does not occur in a web browser.
Any help would be greatly appricated.
Solved! Go to Solution.
Our engineers have confirmed this problem and are looking into this. I'll update this thread again when there is a fix.
The workaround is as described above: make sure all form data cards are visible initially, even if they are on a different screen. Then, when navigating to a screen, set the visibility appropriately.
Thanks @tahoon. It's only taken me months of bashing my head against the wall to finally work this out. So frustrating. This changed at some stage because previous apps I built were working fine and then they all started acting up.
If you leave the improved app rendering on and and don't make all data cards visible initially, the rendering goes completely haywire and that is on any platform, browser or iPhone. Please make sure the engineers also know about this.
Working with hidden fields in forms is such a critical, and I think, basic feature.
Thanks for your assistance on this.
I have another bug I've found. I'll open a another discussion.
I've found this solution did not work for me, although my application is larger and more complex than the example shown by eddyg (Thanks), i cannot get the rendering to function as needed, using variables and keeping all tabs visible until they are hidden.
The first page of my app is before any data is loaded so this maybe a problem on my part, as the my variables wont actually be changing anything yet. I will have a play with changing the variables on preceding pages to where i need the tabs to be visible/invisible.
I hope the fix @_Corey_ mentions is out imminently 🙂
By the "first page of my app", do you mean the first screen?
If that's the case, then the same rule applies. At the very beginning of the app, in other words, the very first screen that opens when the app starts, you will need to initiate all the variables there regardless of whether they are used or not on that screen. You do this by using GLOBAL variables, in other words, use SET when initiating the variable. This is where you will set ALL the variables to TRUE regardless of what state you would like them in. Then when you hit the screen that you want to use the variables in, On Start of that screen, you SET the variables according to what you want to hide or show. I've done some extensive testing around this and this is the only way I've managed to get this to work everytime.
Hi @eddyg, Thanks for the swift reply, Yes, i had already done as you mentioned and set the global variables on the very first page (first screen on loading) of the application.
Is it worth mentioning that at the first screen of my application the DB hasnt been queried yet? I did find on occasion, that if i went in to a detail screen (with the tabs in) it would not render correctly, but if i re entered that particular entry the default visible tab (onvisble) would now display correctly. Change tab (variable changes) then that tab doesnt render correctly.
I'd upload some screen shots but the content it confidential- i will double check the coding and come back to you.
Hi @Anonymous, if your app is complex and there is a lot going on, then there might be other things that are influencing this. It might not be worthwhile battling to try and create a workaround. I found in my testing that I couldn't actually get my original app to function correctly so after using a brand new test app to find the cause of the issue and the workaround, I rebuilt my app from scratch using my workaround. Quite an undertaking I know but I couldn't get my original app to work with my workaround either. It might be cache or it might just be gremlins, who knows. There was quite a bit of work to rebuild my app but I'd like to think that it took less time than it would have taken to hack away until I finally got the workaround to work.
Having said all that, they did mention that they would be releasing the rendering patch this month..... Maybe it's worth waiting for that.
My APP is now resolved, i went through more carfeully and re added all the global variable as required (i missed some previously) as per @eddyg instructions and now works correctly.
The size/complexity (not to mention person in chair) of my application was the sticking point!
Thanks for all the support