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

我必须在我正在开发的一个应用程序中做到这一点。尝试对视图控制器进行类型转换

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 回答