如何呈现(无笔尖)ViewController

时间:2012-08-20 19:00:21

标签: objective-c ios xcode uiviewcontroller modal-dialog

我已经创建了一个ViewController(没有nib文件),那么如何在app delegate中加载这个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方法被调用,但是屏幕仍然是黑色....

3 个答案:

答案 0 :(得分:2)

看起来您的属性设置不正确。

检查此行:

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

检查self.viewController是否正常,并且没有什么可以阻止你做的事情:

self.window.rootViewController = viewController;

答案 1 :(得分:1)

糟糕,我在viewDidLoad方法中错过了这段代码:

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

所以一切正常,但默认情况下屏幕是黑色的,没有框架。

答案 2 :(得分:0)

我必须在我正在开发的其中一个应用程序中执行此操作。尝试对视图控制器进行类型转换

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

// Override point for customization after application launch.
return YES;