Jacob Bennett
Jacob Bennett

Reputation: 67

Corona SDK onRowTouch gotoScene

I cannot change the scene with composer or storyboard. I am trying to change the scene when you touch a row in tableview. I am able to change the scene from the main file to the file with the tableview. The tableview touch is not working though.

Some of my code is below:

    local widget = require( "widget" )
    local storyboard = require( "storyboard" )
    local composer = require( "composer" )
    local scene = composer.newScene()


function RowTouch( event )
    composer.gotoScene( "thehike" )
end



 myTable = widget.newTableView
    {
        width = display.contentWidth, 
        height = display.contentHeight,
        backgroundColor = { .47, .66, .53 },
        topPadding = 0,
        hideBackground = false,
        onRowRender = onRowRender,
        onRowTouch = RowTouch,
        noLines = true,
    }



    for i=1, #hike do
        myTable:insertRow{
        rowHeight = 220,
        isCategory = false,
        lineColor = { .47, .66, .53 }
        }
    end
end

function scene:show( event )
    local sceneGroup = self.view
    local phase = event.phase

    if phase == "will" then
        -- Called when the scene is still off screen and is about to move on screen
    elseif phase == "did" then
        -- Called when the scene is now on screen
        -- 
        -- INSERT code here to make the scene come alive
        -- e.g. start timers, begin animation, play audio, etc.
    end 
end

function scene:hide( event )
    local sceneGroup = self.view
    local phase = event.phase

    if event.phase == "will" then
        -- Called when the scene is on screen and is about to move off screen
        --
        -- INSERT code here to pause the scene
        -- e.g. stop timers, stop animation, unload sounds, etc.)
    elseif phase == "did" then
        -- Called when the scene is now off screen
    end
end

function scene:destroy( event )
    local sceneGroup = self.view

    -- Called prior to the removal of scene's "view" (sceneGroup)
    -- 
    -- INSERT code here to cleanup the scene
    -- e.g. remove display objects, remove touch listeners, save state, etc.
end

---------------------------------------------------------------------------------

-- Listener setup
scene:addEventListener( "create", scene )
scene:addEventListener( "show", scene )
scene:addEventListener( "hide", scene )
scene:addEventListener( "destroy", scene )

-----------------------------------------------------------------------------------------

return scene

Upvotes: 0

Views: 369

Answers (1)

usysrc
usysrc

Reputation: 126

Your code does not work for a couple of reasons. You have a dangling end in line 34 and you did not define hike. You probably need a smaller rowHeight in order to show the rows in your view:

 local myTable = widget.newTableView
    {
        left = 0,
        top = 0,
        height = 330,
        width = 300
    }

 myTable:insertRow(
        {
            isCategory = false,
            rowHeight = 40,
            rowColor = rowColor,
            lineColor = {.47, .66, .53}
        }
    )

Also, the documentation is pretty good on this[1].

[1] http://docs.coronalabs.com/api/library/widget/newTableView.html

Upvotes: 1

Related Questions