CoronaViewController
CoronaViewController
是 UIViewController
/GLKViewController
类的子类。如果你正在构建一个多视图应用,则可以以编程方式使 CoronaView
成为子视图。通常,你会在它不是根控制器时(例如,CoronaViewController
是另一个控制器的子项时)实例化一个 CoronaViewController
。
在将 CoronaViewController
创建为子控制器时,你必须通过以下步骤覆盖父控制器的 viewDidLoad
方法
实例化 CoronaViewController
并确保它在 CoronaView
的生命周期内存在。在以下示例中,coronaController
是父控制器的属性,在赋值后就会隐式保留下来。
将 CoronaViewController
添加为父控制器的子控制器。确保父控制器的通知会传播到 CoronaViewController
,例如在父视图显示或隐藏时。
调整 CoronaView
的大小。当此视图以编程方式加载时,其默认大小为屏幕大小。
将 CoronaView
添加为父控制器视图的子视图。
告知 CoronaView
运行哪个 main.lua
文件。在以下示例中,我们运行存在于 .app
捆绑包根目录的 main.lua
。但是,你可以通过调用 runWithPath:parameters:
来选择任何 main.lua
文件。
// This method belongs to the parent UIViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.coronaController = [[[CoronaViewController alloc] init] autorelease]; // (Step 1)
[self addChildViewController:self.coronaController]; // (Step 2)
CoronaView *coronaView = (CoronaView *)self.coronaController.view;
// Same size as parent view
coronaView.frame = self.view.frame; // (Step 3)
[self.view addSubview:coronaView]; // (Step 4)
[coronaView run]; // (Step 5)
}