Call method from another GUI

10 views (last 30 days)
Ryan Sinfield
Ryan Sinfield on 18 Nov 2016
Commented: Ryan Sinfield on 18 Nov 2016
I have two GUIs, GUI1 and GUI2. Before I close GUI2 completely, I want to call a function from GUI1.
% In GUI2
gui1 = findobj('Tag', 'GUI1');
gui1.callThisBeforeClosingFcn();
close(handles.GUI2);
I get an error when trying to call the GUI1 function - "No appropriate method, propery, or field 'callThisBeforeClosingFcn' for class matlab.ui.Figure."
What is the correct way to call that function?

Answers (1)

Jan
Jan on 18 Nov 2016
Edited: Jan on 18 Nov 2016
I cannot guess, what "gui1.callThisBeforeClosingFcn()" should be. Perhaops you want to call a function before closing the figure autoamtically? But what might "from another GUI" mean then...
figure('CloseRequestFcn', @callThisBeforeClosingFcn, ...
'DeleteFcn', @callThisBeforeClosingFcn);
and your function:
function callThisBeforeClosingFcn(FigH, EventData)
handles = guidata(FigH);
... do whatever you want
figure('CloseRequestFcn', [], ...
'DeleteFcn', []);
delete(figure);
Now simply close or delete the figure, or close it using the "x" in the window border and the specified function is called automatically.
  2 Comments
Ryan Sinfield
Ryan Sinfield on 18 Nov 2016
The function I want to call is from another GUI's m file. I have GUI2.m, from which I need to call the function callThisBeforeClosingFcn that is located in GUI1.m. Does this help clarify?
Ryan Sinfield
Ryan Sinfield on 18 Nov 2016
In other words - I want to call a method from another m file. How can I do that?

Sign in to comment.

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Tags

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!