2015-10-05 33 views
0

我是iOS开发新手,已经构建了一个基本应用程序来帮助我熟悉这些约定。它与下面的流程基本的游戏:在导航控制器之外停止ViewController

主菜单 - >(模式)新的游戏类型 - >(按Segue公司)游戏 - >(模式)比赛结束 - >(按Segue公司)主菜单

我的问题涉及从游戏/游戏回到主菜单。菜单是一个ViewController,游戏是一个单独的ViewController,但不嵌入导航控制器。

当我在游戏结束后将Segue返回主菜单时,Game ViewController会发生什么?既然它不是一种模式,我不能从主菜单ViewController中解雇它,并且当用户启动另一个游戏时,Push Segue到游戏是否会创建另一个游戏?我应该停止(以及如何)完成的游戏视图控制器?

我问,因为在调试时,运行几个游戏后,我看到一个UITranitionView集合。我想确保我没有泄漏任何东西并正确处理转换...

回答

0

对于像我这样困惑的人来说,这就是我最终做的。

正如Ankit提到的那样,pop segue是要走的路,但是您不能将UIViewController从不存在的导航堆栈中弹出。所以要解决这个问题,我必须将我的主视图控制器嵌入到UINavigationController中,然后通过vc将游戏和游戏推入导航堆栈。一旦比赛结束,我做了一次放松回到Main vc。

主菜单 - >(模式)的新游戏 - >(PUSH)游戏 - 超过>(PUSH)游戏 - >(开卷)主要

有在Interface Builder选择隐藏在导航栏UINavigationController就是我所做的。底线:我使用的是预设的导航堆栈,因此需要一个UINavigationController。意识到这些事情后更有意义。

0

如果您想使用正确的转换,然后使用“主菜单 - >(模式)新游戏类型 - >(推塞格)游戏 - >(模态)游戏结束 - >(POP Segue到主视图控制器)主菜单“而不是使用”主菜单 - >(模态)新游戏类型 - >(推塞格)游戏 - >(模态)游戏(Push Segue)主菜单“

+0

我的理解是,你所描述的POP segue适用于嵌入在导航控制器中的ViewControllers,但是我的ViewControllers没有。他们应该是?这是公认的做法吗? – SjB

相关问题