A custom modal dialog as an AppDesigner App

Version 1.0.0 (27.4 KB) by RST
This is sample code for a custom, modal AppDesigner dialog. R2020b onwards
16 Downloads
Updated 9 May 2024

View License

A sample custom modal dialog in AppDesigner.
The app is called from an ordinary function, much like uigetfile().
How it works:
1) The modal dialog app
  • sets its main WindowStyle to 'modal'
  • when a button is pressed
  • calls its ValueChangedFcn to pass the dialog result to the caller
  • closes the window
2) A .m-file function 'showModalDialog()'
  • returns a variable 'result' with default value []
  • has an inner function 'valueChanged' that sets 'result' per its one argument
  • when running it
  • creates the ModalDialogApp
  • sets the app's ValueChangedFcn to 'valueChanged'
  • uiwait()s on the dialog's mainFigure
Thus showModalDialog() is blocked until the dialog closes on a button press or window close. The dialog result, if any, is passed via a call to the inner function, thus minimising name pollution.
In this example the dialog result is a scalar double, but the result may be as complex as necessary.
In an app, showModalDialog() could become a private member function; this would, for example, let the app set the position of the dialog.
See MATLAB answer:

Cite As

RST (2026). A custom modal dialog as an AppDesigner App (https://uk.mathworks.com/matlabcentral/fileexchange/165686-a-custom-modal-dialog-as-an-appdesigner-app), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2023a
Compatible with R2020b and later releases
Platform Compatibility
Windows macOS Linux
Version Published Release Notes
1.0.0