我不熟悉iOS UIViewController的詳細實現。我有以下代碼來創建一個新的UIViewController並顯示它,但是我在initWithFrame方法期間設置的框架不起作用,控制器的視圖始終是全屏(320 * 480)。iOS在顯示之前如何設置UIViewController的視圖框架?
UIViewController *viewController = [[UIViewController alloc] init];
// view
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 140, 130)];
viewController.view = view;
[view release];
AppController *app = (AppController*)[[UIApplication sharedApplication] delegate];
UINavigationController *nav = [app navController];
[nav pushViewController:viewController animated:YES];
[viewController release];
我在蘋果開發者文檔中搜索相關的想法,但是我沒有發現任何有用的東西。 UIViewController在展示之前如何處理其視圖框架屬性?我在哪裏可以找到有用的文檔。
謝謝。
更新:事實上,代碼是從的cocos2d-iphone DirectorTest:https://github.com/cocos2d/cocos2d-iphone/blob/release-2.0-rc1/tests/DirectorTest.m#L143
你確定你沒有看到導航控制器視圖波紋管?你有沒有嘗試爲背景設置自定義顏色?您的導航也是錯誤的。如果此代碼位於視圖控制器中,請使用'self.navigationController'來訪問導航控制器並將新視圖控制器放在其上。 – Eimantas
@Eimantas我更新了,這段代碼是從cocos2d測試過來的,它運行正常,視圖全屏顯示,甚至它的幀被設置爲(0,0,160,240) – qichunren
這段代碼只是一個寫得不好的測試用例不應該用於真正的應用程序。但是,請注意視圖框架可以根據自動調整掩碼進行更改。 – Felix