2013-11-26 36 views
0

我是Corona Enterprise和Objective C的新手,但是我已經有了我想在沒有Corona的情況下在XCode上工作的內容。現在,當我試圖將它放入一個Corona項目中時,它並不能很好地工作......如何使用Corona Enterprise在iOS上本地更改窗口顏色?

我將代碼縮小到了最低限度,只將窗口顏色設置爲紅色。發生了什麼事情是窗口變成了紅色,但在XCode模擬器上只有不到一秒鐘的時間。在那之後,就變成黑色......再次

這裏是我的AppDelegate代碼:

showLoading(lua_State *L) 
{ 
    void *platformContext = CoronaLuaGetContext(L); // lua_touserdata(L, lua_upvalueindex(1)); 
    id<CoronaRuntime> runtime = (id<CoronaRuntime>)platformContext; 
    runtime.appWindow.backgroundColor = [UIColor redColor]; 

    // Return 0 since this Lua function does not return any values. 
    return 0; 
} 

- (void)willLoadMain:(id<CoronaRuntime>)runtime 
{ 
    lua_State *L = runtime.L; 

    const luaL_Reg kFunctions[] = 
    { 
     "showLoading", showLoading, 

     NULL, NULL 
    }; 

    luaL_register(L, "window", kFunctions); 
    lua_pop(L, 1); 
} 

而且在main.lua我只叫:

window.showLoading() 

我在做什麼錯?我只需要了解這一點就可以在窗口中顯示我想要的內容。我試着用runtime.appViewController.view.backgroundColor但屏幕仍然顯示一個黑色,而不是紅色...

回答

0

好吧,我發現什麼是錯,而我在等待一個答案。下面是新的代碼,裏面的AppDelegate:

showLoading(lua_State *L) 
{ 
    void *platformContext = CoronaLuaGetContext(L); 
    id<CoronaRuntime> runtime = (id<CoronaRuntime>)platformContext; 
    CGRect screenRect = [[UIScreen mainScreen] bounds]; 
    if (!runtime.appViewController.view) 
     runtime.appViewController.view=[[UIView alloc] initWithFrame:screenRect]; 
    runtime.appViewController.view.backgroundColor = [UIColor redColor]; 

    // Return 0 since this Lua function does not return any values. 
    return 0; 
} 

在開始的時候,我還以爲runtime.appViewController.view已初始化。現在我看到它不是。但是,如果我將任何元素添加到main.lua,它將被初始化,因此,如果它仍然nil需要if來初始化它。