I hope I have interpreted your question correctly....
One of my projects requires different information to be sent/received from arduino to arduino, and what I did was basically how you have indicated.
Wire.requestFrom(Address, 1); // request 1 bytes from slave device
So basically you send a 'Command' from the Master to the Slave, and then you request data from it. In the Slave you save the command that you received, and then when the request for data comes in, you send the information based on what the command was.
If that makes sense.
So in the slave, in simple terms, I do this:
Wire.begin(Address); //Slaves Address
void receiveEvent(int HowMany)
if(Wire.available() > 0)
CMD = Wire.receive();
if(CMD == 0x01)
if(CMD == 0x02)
//Send other Stuff
Hope you get the idea.
Thats how I have done it anyway and it works well.