Возможно, я не до конца понимаю ваш вопрос (см. Мой комментарий), но я сделал пример кода, который работает так, как вы, вероятно, ожидаете.
Я думаю, что вам не хватает части, которую вам нужно передатьОсновная фигура дескриптора к вашему sub GUI для того, чтобы данные были доступны.Насколько я понимаю, данные хранятся с помощью guidata в графической среде, и поэтому вам необходимо знать дескриптор фигуры, чтобы иметь возможность доступа к ее сохраненным графическим данным.
Вот оно:
Основной графический интерфейс
% GUI
function so_multiguiA
% Layout
figure('units','normalized','position',[0.2 0.2 0.3 0.3],'tag','figure');
datamain=guihandles(gcf);
uicontrol('style','pushbutton','string','Click me', ...
'parent',datamain.figure,'units','normalized', ...
'Position',[0.2 0.2 0.6 0.6],'tag','button', ...
'callback',@buttonmain_callback);
datamain=guihandles(gcf);
% Data
guidata(gcf,datamain);
end
% Callback
function buttonmain_callback(obj,event)%#ok
so_multiguiB(gcbf);
end
Вспомогательный графический интерфейс
% GUI
function so_multiguiB(mainhandle)
% Layout
figure('units','normalized','position',[0.5 0.5 0.3 0.3],'tag','figure');
datasub=guihandles(gcf);
uicontrol('style','pushbutton','string','Disable main button', ...
'parent',datasub.figure,'units','normalized', ...
'Position',[0.2 0.2 0.6 0.6],'tag','button', ...
'callback',@buttonsub_callback);
datasub=guihandles(gcf);
% Data
datasub.mainhandle=mainhandle;
guidata(gcf,datasub);
end
% Callback
function buttonsub_callback(obj,event)%#ok
datasub=guidata(gcbf);
datamain=guidata(datasub.mainhandle);
set(datamain.button,'enable','off');
end
Надеюсь, это поможет.