在segue之前解雇视图控制器

时间:2014-07-14 17:49:03

标签: ios objective-c xcode uiviewcontroller storyboard

我需要按级别设计一个游戏,只有这样才能从每个级别前进或回到家中。没有必要回到以前的水平。 这就是场景:

MENU-> LEVEL 1 - >第2级 - > ......等级9 - >等级10

所以我扩展了UIViewController类,并将它分配给了storyboard中的10个对象。当某些条件(它并不重要)发生时,我需要传递到下一级,丢弃当前级别的内存,这是不再需要的。 这样做的最佳方式是什么? 请尽快回答并感谢

2 个答案:

答案 0 :(得分:1)

如果您希望能够从VC1(home) - > VC2 - > VC3顺序向前移动,但总是向后跳转到VC1(home),然后使用展开segue。这使您可以完全按照自己的意愿行事,并提供进一步跳回任何先前VC的能力。顺便说一句,unwind为你处理内存问题。这很容易实现,我建议你看一下这篇优秀的文章:

What are Unwind Segues for and How to Use Them

答案 1 :(得分:0)

shouldPerformSequeWithIdentifier之前调用

prepareSegue。所以你可以在这里做你的逻辑以防止实际的segue。只需返回false并执行您需要的操作。

- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender{
    if ([identifier isEqualToString:@"mySegue"]) {
        // Do what you need here
        [self.navigationController popToRootViewControllerAnimated:YES];
        return FALSE;
    }

    return TRUE;
}