I'm experiencing some strange behaviour in one of my canvas apps using a component and a toggle, where the app works as designed on both Desktop and Android, but it doesn't function on iOS.
I have collection of distance marks (one record for each distance), lets call it colDistances. This collection is shown in a gallery.
The app user can add distance mark tocolDisntances.
The app user can delete distance marks created from colDistances.
To add or delete distance marks, the user needs to provide the new distance and confirm deletion respectively.
Both actions are captured in this gif:
Both actions use a Dialog Component, and a Toggle.
The PowerApp process:
When the user clicks the add or delete button, they are shown a dialog, based on a component that is configured differently for each action.
There is (hidden) Toggle' with its Default is set to an output value of the Dialog Component that indicates its visibilty.
When the user inputs a value (if applicable, e.g. the new distance mark) and selects one of two buttons on the Dialog Component, the inputted value and button clicked are saved as two output values of the component.
When the dialog component is closed through clicking the button, the Default of the Toggle is set to false. This means the functions in the Toggle's UnCheck property are exectured.
The Toggle's UnCheck property contains the function(s) that either adds or deletes distance mark based on the Dialog Component's inputted value and/or clicked buttons output value(s).
All of the above works perfectly on both Desktop (in play mode as well as in the editor) and Android. When either of the actions are however performed on an iOS device (testing with iPad Pro and iPhone 10) the actions result in nothing the first time. Only the second time the same action is performed it works as intended.
As one could imagine, needing to perform an action twice every time is very annoying (#firstworldproblems). Hence I'm reaching out to you. Does anybody have any ideas as to how I could solve this? And perhaps why execution of the functions in the UnCheck property behaves differently cross-platforms.