2012-11-29 28 views
0

我想創建一個應用程序,使用cocos2d作爲主屏幕,併爲一些表和信息使用UINavigationController。我使用此代碼來嘗試一個UINavigationController(設定)推入視圖在CCLayer中添加一個UINavigationController

UINavigationController *controller = [[UINavigationController alloc] init]; 
Settings *newTableViewController = [[Settings alloc] init]; 
[controller pushViewController:newTableViewController animated:YES]; 

該代碼在一個CCLayer執行,並且設置是一個UINavigationController。

我得到這個錯誤

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Pushing a navigation controller is not supported'

這是否意味着我不能把一個NaviagationController到CCLayer? 請幫助。

回答

0

您無法「將視圖控制器推送到CCLayer」。你使用cocos2d所做的所有事情都發生在一個OpenGL視圖中。

如果您確實想要這樣做,您可以更改應用程序的根視圖控制器的創建。使您的應用程序視圖控制器成爲UINavigationController的一個子類而不是UIViewController,然後從您的應用程序委託中獲取rootViewController,並在需要時推送/彈出任何其他視圖控制器。無論如何,我不認爲,這是一個好主意。

關於你的異常我假設你的Settings類是UINavigationController的一個子類。所有想要推送到導航控制器的控制器都必須來自UIViewController,而不是UINavigationController。

+0

是的,當我發佈這個問題後,我正在考慮這個問題。謝謝! – mattblessed

+0

歡迎你=) – Morion

+0

嗨,有沒有一種方法,我可以動畫一個UITableView,就像一個UINavigationController的方式?例如,在iPhone上的設置應用程序中,當您「向下鑽取」並觸摸單元格時,過渡動畫就是我想要創建的。你有什麼想法? – mattblessed

相關問題