我在传递一些数据时遇到了一些麻烦 (静态int)在视图之间,我很确定它,因为我没有正确地改变视图,但不确定我做错了什么。 (并且以前没有使用过故事板,对这些东西很新)
例如,从主菜单导航我加载 TableViewController_LevelViewTable:UITableViewController
TableViewController_LevelViewTable 显示游戏的所有级别,当我点击一个cel时,它应该在数据类中设置静态int值(相对于级别来说)之后由HelloSKScene读取的load和一个字符串 然后将helloSkscene加载到myViewControllerToSKScene
if (indexPath.row ==1)
{
UIStoryboard *storyboard=[UIStoryboard storyboardWithName:@"Main" bundle:nil];
//Load view controller: myViewController <loads SKScene>
myViewControllerToSKScene *tvc=[storyboard instantiateViewControllerWithIdentifier:@"myViewControllerToSKScene"];
[self.view addSubview:tvc.view];
[self addChildViewController:tvc];
[Data setLevel:1];
}
这反过来加载myViewControllerToSKScene:UIViewController
myViewControllerToSKScene
- (void)viewDidLoad
{
// Create and configure the SKScene to load.
HelloSKScene *theScene = [HelloSKScene sceneWithSize:spriteView.bounds.size];
theScene.scaleMode = SKSceneScaleModeAspectFill;
// Present the scene.
[spriteView presentScene:theScene];
}
视图正在加载,但数据最初没有,但会第二次加载。我是从SKScene回到菜单然后返回skscene 不知何故静态int在视图之间不起作用
另外我注意到tableview仍然位于HelloSkScene视图后面(如何删除tableview,只保留屏幕上的SKScene,所有场景都应删除前一个场景)
谢谢 Ñ
在整个故事板下面,我正在测试嵌入tableviews,加载tableview控制器并将SKScene加载到UIView中
答案 0 :(得分:1)
您正在做的是向当前控制器添加子视图,您可能希望使用-presentViewController:animated:completion:
,如下所示:
UIStoryboard *storyboard=[UIStoryboard storyboardWithName:@"Main" bundle:nil];
myViewControllerToSKScene *tvc = [storyboard instantiateViewControllerWithIdentifier:@"myViewControllerToSKScene"];
//perhaps you want to add your level configuration here
tvc.level = indexPath.row //or just tvc.level = 1;
[self presentViewController:myViewControllerToSKScene animated:YES completition:nil];
有关here
中的更多信息您在创建视图后设置了Data
对象,这是第一次没有加载的原因,但是如果之前的解决方案没有“ ; t为你工作,你仍然想使用Data
对象,你可以实现这样的东西:
UIStoryboard *storyboard=[UIStoryboard storyboardWithName:@"Main" bundle:nil];
myViewControllerToSKScene *tvc = [storyboard instantiateViewControllerWithIdentifier:@"myViewControllerToSKScene"];
[Data setLevel:1];
[self presentViewController:myViewControllerToSKScene animated:YES completition:nil];