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 itdoesn't function on iOS.
I have collection of distance marks (one record for each distance), lets call itcolDistances. This collection is shown in a gallery.
The appuser can add distance mark tocolDisntances.
The appuser can deletedistance marks createdfrom 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 (working on Desktop):
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 Defaultis set to an output value of the Dialog Componentthat 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 theToggleis set to false. This means the functions in the Toggle's UnCheckproperty are exectured.
The Toggle'sUnCheckproperty 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.
Can you describe the exact values of Toggle.Default and Toggle.OnUncheck? You mentioned that it is set to an output property of the component. How is that output property configured?
You can narrow down the cause of the problem by adding what I call "debugging labels". For example, insert a Label that has its Text property set to the output property of the component. This way, you can easily see the output value of the component. If the Label shows the expected value, then the bug is specific to the Toggle control. If the Label also shows the wrong value, then the bug is with the component that produces the output value.