I think passing information with the findall can be a bit dangerous. What if you have multiple instances of the first GUI running? I wrote a little example. Here you pass in the function handle of first GUI the first time the function is called. The values are intialized. Then you just use it as a structure to get the data you want. I would call this function with temp = getData(h) where h is the handle to your main figure. Then temp.getString1() returns a certain type or data, etc. This allows you to destroy the first GUI but some of its contents have been saved. Obviously, there are many variations on this theme and I don't know if this will help in your case.
function myData = getData(varargin)
if ~isempty(varargin)
h = varargin{1};
pushbuttonString = get(findobj(h,'tag','pushbutton1'),'String');
end
myData.string1 = @getString1;
myData.string2 = @getString2;
myData.string3 = @getString3;
function out = getString1()
out = 'incredibly important string';
end
function out = getString2()
out = 'another incredibly important string';
end
function out = getString3()
out = pushbuttonString;
end
end