我有以下代码,我想加载UIViewController。如何初始化和加载UIViewController。
- (void) applicationDidFinishLaunching:(UIApplication*)application
{
CC_DIRECTOR_INIT();
NSLog(@"applicationDidFinishLaunching");
MainViewController *controller = [[MainViewController alloc] init];
}
答案 0 :(得分:4)
从你的代表你可以这样做(假设你有IBOutlet UIWindow *窗口):
[window addSubview:[controller view]];
[window makeKeyAndVisible];
加载控制器后,您可以推送其他人(来自UIViewController):
controller = [[MainViewController alloc] init];
[[self navigationController] pushViewController:controller animated:YES];
以下是UINavigationController.pushViewController
文档的链接答案 1 :(得分:4)
TestViewController *testController = [[TestViewController alloc] init];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window setRootViewController:testController];
[self.window makeKeyAndVisible];
虽然添加子视图可以正常工作,但除非将控制器设置为RootViewController,否则会收到以下警告:
应用程序窗口应该有一个根视图控制器 应用程序启动结束
答案 2 :(得分:2)
您是否正在使用nib文件来设置视图的用户界面?您目前拥有的代码 加载并初始化ViewController。但是,您需要在视图中添加一些用户界面元素,并在应用程序中显示该视图控制器。如果您使用nib文件作为用户界面,那么您需要:
MainViewController *controller = [[MainViewController alloc] initWithNibName:@"nibFileName" bundle:nil];
这会将您的控制器与nib文件相关联。如果您没有使用nib文件,则需要以编程方式添加要显示的每个元素。
设置视图后,您需要显示视图控制器,方法是将其作为子视图添加到当前视图,或使用navigationController推送新的viewController。你需要更具体地了解你想要做什么。
答案 3 :(得分:0)
我认为你要添加的是:
[[NSBundle mainBundle] loadNibNamed:@"nibWithMainViewControllerAsOwner" owner:controller options:nil];
loadNibNamed:owner:options:
是UIKit添加到NSBundle的唯一方法。见NSBundle UIKit Additions Reference。如果没有正确连接插座的任何问题,请检查所有插座是否符合键值编码(替代答案:确保它们作为属性正确公开)。
答案 4 :(得分:0)
[viewController view]
这是加载viewController的方法。访问视图时,它是延迟加载的。