2014-04-18 2 views
0

탭 막대가있는 파일에 액세스하려고 할 때 오류가 있습니다. 아무도 내가 뭘 잘못하고 있는지 안다. 코로나 SDK는 실제로 버튼이 아니라 탭 막대를 만드는 코드 섹션에 오류가 있음을 알려줍니다. 감사합니다탭 막대로 루아 파일에 접근하려면 어떻게해야합니까?

다음은 탭 표시 줄이 만들어지는 MainPage.lua 장면에 대한 코드입니다.

local tabBar = nil 
function scene: create (event) 
local group = scene.view 
local tabButtons = 
{ 
    { 
     width = 20, 
     height = 32, 
     defaultFile = "assets/home.png", 
     overFile = "assets/PressHome.png", 
     label = "Home", 
     font = tabLabelFont, 
     size = tabLabelFontSize, 
     onPress = function() composer.gotoScene("Home"); end, 
    }, 
    { 
     width = 20, 
     height = 32, 
     defaultFile = "assets/Explore.png", 
     overFile = "assets/Explore.png", 
     label = "Explore", 
     font = tabLabelFont, 
     size = tabLabelFontSize, 
     onPress = function() composer.gotoScene("Explore"); end, 
    }, 
    { 
     width = 20, 
     height = 32, 
     defaultFile = "assets/Post.png", 
     overFile = "assets/Post.png", 
     label = "Post", 
     font = tabLabelFont, 
     size = tabLabelFontSize, 
     onPress = function() composer.gotoScene("Post"); end, 
    }, 
    { 
     width = 20, 
     height = 32, 
     defaultFile = "assets/Notification.png", 
     overFile = "assets/Notification.png", 
     label = "Notification", 
     font = tabLabelFont, 
     size = tabLabelFontSize, 
     onPress = function() composer.gotoScene("Notification"); end, 
    }, 
    { 
     width = 20, 
     height = 32, 
     defaultFile = "assets/Profile.png", 
     overFile = "assets/Profile.png", 
     label = "Profile", 
     font = tabLabelFont, 
     size = tabLabelFontSize, 
     onPress = function() composer.gotoScene("Profile"); end, 
    } 
} 

-- Create a tab-bar and place it at the bottom of the screen 
tabBar = widget.newTabBar 
{ 
    top = display.contentHeight - 50, 
    width = display.contentWidth, 
    backgroundFile = "assets/tabbar.png", 
    tabSelectedLeftFile = "assets/tabBar_tabSelectedLeft.png", 
    tabSelectedMiddleFile = "assets/tabBar_tabSelectedMiddle.png", 
    tabSelectedRightFile = "assets/tabBar_tabSelectedRight.png", 
    tabSelectedFrameWidth = 20, 
    tabSelectedFrameHeight = 52, 
    buttons = tabButtons 
} 
group: insert(tabBar) 
composer.gotoScene("Home") 
end 
scene:addEventListener("create", scene) 
return scene 

여기는 탭 모음 페이지에 액세스해야하는 로그인 페이지의 방법입니다.

local function EnterPage(event) 
    composer.gotoScene("MainPage") 
end 

오류 페이지에서 로그에 "한 tabBar = widget.newTabBar" 오류를 상태 라인 바로 이동

stack traceback: 
    ?: in function '?' 
    ?: in function <?:703> 
    (tail call): ? 
    ?: in function <?:122> 
    (tail call): ? 
    MainPage.lua:127: in main chunk 
    [C]: in function 'require' 
    ?: in function <?:797> 
    (tail call): ? 
    LogIn.lua:78: in function <LogIn.lua:70> 
    ?: in function <?:218> 

라인 메인 페이지의 127 말하고있는 것입니다 gotoScene (MainPage) 방법

+0

어떤 오류가 발생하고 있습니까? –

+0

포스트에 편집을 넣습니다. –

+0

스택 트레이스 직전에 어떤 라인이 있습니까? 실제 오류가 무엇인지 나타내야합니다. 스택 추적은 많은 양의 꼬리 재귀 (아마도 디버그 기호 제거)가 포함되어 있기 때문에 불행히도 도움이되지 않습니다. –

답변

0

"파일 : 인덱스 시도 nil의 값이"많은 도움이 될 것입니다 : 당신이 a.b = something 또는 a이 전무하다 a.b() 같은 형태 a.b의 동작을하고 있다는 것을 말한다. 발생하는 행을 감안할 때 이것은 잊어 버렸기 때문에 분명합니다.

widget = require 'widget' 

파일 상단 부근.

print('widget is', widget) 
tabBar = widget.newTabBar 
... 

가 nil이 아닌 경우, 당신은 당신이 게시 된 정보의 오류 (잘못을 만들었습니다 : 그 라인이 (MainPage.lua에서), 다음 widget 덮어되지 않았 음을 확인 이미있는 경우

줄 번호 등) 또는 어쩌면 당신은 많은 것들을 시도하고 정보가 섞여있어. 그 작동하는 경우 그런 다음 코드와 같이하지, 당신이 당신의 MainPage.luawidget 곳을 덮어 알고, 단지 확인하기 위해,

widget = require 'widget' 
tabBar = widget.newTabBar 

을 시도 할 수 있습니다. 그 작동하는 경우 당신은 또한

test = widget.newButton 
{ 
    left = 100, top = 200, 
    label = "Default", 
    onEvent = function() print('hi') end 
} 

을 시도해야하지만, newTabBar은 여전히 ​​코로나 newTabBar 사이트에있는 예제의 사람들과 옵션을 교체하려고 작동하지 않습니다.

+0

아니요 그 줄이 코드에 있습니다. 단지이 페이지에 제공된 코드 섹션에 포함되어 있지 않습니다. –

+0

@domladj 너무 많은 가능성이 없으며 업데이트했습니다. – Schollii

+0

출력은 '위젯 테이블 : 09CF08C0'이다 위젯이 두 줄 '위젯 한 tabBar = 위젯을'위젯 = 필요한 '를 제외하고 프로그램에 다른 곳에서는 사용/호출되지 않습니다.newTabBar ' 또한 프로그램에 테이블이나 테이블 호출이 없습니다. –

관련 문제