0

我的游戏有很多模态视图控制器。所以我需要一种方法将我的视图控制器从堆栈中弹出,这样我的堆栈上就不会有太多的视图控制器。

所以说我有 vc 1 连接到 vc 2,连接到 vc3,而 vc3 连接到 vc1。

当它回到 vc 1 时,我应该打电话吗?

[self.navigationController popToRootViewControllerAnimated:YES]; ?

此外,为了重播我的游戏,我所做的只是有一个重播按钮,该按钮与它自己的 vc 相连接。有人告诉我这是个坏主意,所以如果我每次点击重播按钮时都可以打电话[self.navigationController popViewControllerAnimated:YES]; 吗?

我希望它与自己的 vc 连接的原因是因为我想要在模态连接时发生的很酷的交叉溶解动画。

如果我做了这一切,它会毫无问题地工作吗?

4

1 回答 1

1

除了 self -> self 转换之外,您所做的一切都是正确的。

你应该有一个动画。

例如:

 - (void)reset
{
    [self resetInternalModelState];

    [self animateWithDuration:duration animations:^{
        // Logic to dissolve your view.
    }];

    [self reloadModelData];
}

如果你想象你有一个重置状态的方法,以及一个根据你的内部模型数据重新加载视图的方法,这将完全符合你的要求,而不会滥用你从视图控制器转换中获得的动画免费赠品。

于 2012-08-04T01:05:48.090 回答