从CCScene中显示/删除UIViewController?

时间:2013-03-26 11:23:40

标签: objective-c cocos2d-iphone

我将在ccscene和adressBook中展示:

picker = [[ABPeoplePickerNavigationController alloc] init];
     picker.peoplePickerDelegate = self;
    [[CCDirector sharedDirector]presentModalViewController:picker animated:YES];

效果很好。

当我想回到上一个场景并解雇它时,我会这样做:

  [[CCDirector sharedDirector] dismissModalViewControllerAnimated:NO];
    [[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:0.1f scene:[Home scene]]];

它确实消失了,我确实看到我的场景0.3秒,它消失了,我有一个黑色的屏幕(有一些消息:不能通过标签删除孩子 - 我不会删除下一个场景中的任何孩子,只加载背景)

那么,我将如何解雇它并安全地回到下一个场景?

非常感谢。

1 个答案:

答案 0 :(得分:1)

当解雇模态视图时,需要时间,所以如果我加载下一个场景并且操作还没有完成,它也会取出下一个场景。

我们要做的就是等到它完成而不是加载下一个视图:(使用块)

    [[CCDirector sharedDirector] dismissViewControllerAnimated:YES completion:^
{
   [[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:0.4f scene:[Home scene]]];


}];

当块完成时,它会加载下一个场景,并且每件事都完美无缺! 我还没有找到任何其他方式,但我很乐意了解其中一个。