Ok, took a while to understand but I finally figured it out. Thanks…
Incase someone else is looking for this… this is how I did it (essentially).
-------------------------- -- From "scene1.lua" -------------------------- local nameInput local textField local options = { isModal = true, params = {textField} } local function showOverlay() --Since the textField in params has not yet been assigned anything and is currently nil, need to make it = the textField options.params.textField = nameInput composer.showOverlay( "scene2", options ) end --in the show() function I created the newTextField as such... nameInput = native.newTextField( display.contentCenterX, letterNeededText.y+50, 150, 30 ) nameInput.placeholder = "Input Name Here!" sceneGroup:insert(nameInput) -------------------------- -- In "scene2.lua" -------------------------- local composer = require( "composer" ) local scene = composer.newScene() --initialize a local object within this new scene that can be set to the textField local nameInput --when close overlay is called later by some sort of close/save button it sets the textbox isVisible field to true function closeOverlay() nameInput.isVisible = true composer.hideOverlay() end function scene:create( event ) --Need to set our local object to equal the textField nameInput = event.params.textField end