2

ViewController(nibファイルなし)を作成したので、このviewControllerをアプリデリゲートにロードするにはどうすればよいですか?私の現在のコードは次のとおりです。

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
viewController = [[MyCustomViewController alloc] init...]; // I use a custom init method
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;

また、presentModalViewControllerメソッドを使用して、同じ「CustomViewController」クラスの新しいビューコントローラーを表示するにはどうすればよいですか?

助けてくれてありがとう!

注:ちなみに、このコードは初期化メソッドを呼び出しており、customViewControllerのViewDidLoadメソッドが呼び出されていますが、画面はまだ黒です。

4

3 に答える 3

2

プロパティが正しく設定されていないようです。

この行を確認してください:

viewController = [[MyCustomViewController alloc] init...]; // I use a custom init method
self.window.rootViewController = self.viewController;

self.viewControllerに問題がないことを確認してください。また、次のことを実行することを妨げるものは何もありません。

self.window.rootViewController = viewController;
于 2012-08-20T22:07:23.313 に答える
1

おっと、viewDidLoadメソッドにこのコードがありませんでした:

self.view.frame = CGRectMake(0, 0, 320, 480);
self.view.backgroundColor = [UIColor whiteColor];

したがって、すべてが機能していましたが、デフォルトでは画面は黒で、フレームはありません。

于 2012-08-20T19:12:45.470 に答える
0

私が取り組んでいるアプリの1つでそれをしなければなりませんでした。ビューコントローラを型キャストしてみてください

CDViewController *viewController = (CDViewController*)self.window.rootViewController;
viewController.managedObjectContext = self.managedObjectContext;
viewController.managedObjectModel = self.managedObjectModel;

// Override point for customization after application launch.
return YES;
于 2012-08-20T19:12:27.383 に答える