iOS Swift-以编程方式导航到特定视图

iOS Swift-以编程方式导航到特定视图,ios,swift,Ios,Swift,我对此做了一些搜索,但似乎找不到适用于我的问题的答案 在我的应用程序中,用户可以创建一个团队。这是一个3 VC流程,通过按+,从管理团队VC开始。团队创建完成后,我希望该应用程序返回到Manage Teams VC,而不参考它的位置。我不想要的示例:如果我从CreateTeamStep3创建一个Segue返回到管理团队并执行它,管理团队VC现在将收到一个返回按钮,允许用户返回到步骤3 该应用程序是一个选项卡栏应用程序,导航控制器嵌入到每个选项卡中 下面是一个粗略的分类: Tab Bar

我对此做了一些搜索,但似乎找不到适用于我的问题的答案


在我的应用程序中,用户可以创建一个团队。这是一个3 VC流程,通过按+,从管理团队VC开始。团队创建完成后,我希望该应用程序返回到Manage Teams VC,而不参考它的位置。我不想要的示例:如果我从CreateTeamStep3创建一个Segue返回到管理团队并执行它,管理团队VC现在将收到一个返回按钮,允许用户返回到步骤3

该应用程序是一个选项卡栏应用程序,导航控制器嵌入到每个选项卡中

下面是一个粗略的分类:

Tab Bar
    - Newsfeed (embedded nav)
      -- Newsfeed detail
    - Teams (embedded nav)
      -- Team detail
    - Find (embedded nav)
      -- Found Detail
    - More (embedded nav)
      -- Manage Teams
         --- Create a Team Step 1
         --- Create a Team Step 2
         --- Create a Team Step 3
      -- Etc...
我试过像这样的东西

var storyboard = UIStoryboard(name:"Main", bundle: nil)
var vc: AnyObject! = storyboard.instantiateViewControllerWithIdentifier("ManageSquadsVC") as UITabBarController
self.navigationController?.presentViewController(vc as UIViewController, animated: true, completion: nil)

但这只是使应用程序崩溃。

据我所知,您希望能够在任何步骤(1、2和3)返回“管理团队”VC

您应该以模式演示“创建团队步骤1”(确保您的“管理团队”嵌入到
UINavigationController
中):

并在所有调用的“步骤”上包含“取消”或“返回”按钮:

self.dismissViewControllerAnimated(true, nil)
关于“管理团队”VC或步骤VC本身


虽然提到了一些不错的选择,但我最终还是使用了一个“放松”序列。这使我可以返回到“管理团队”页面,而不必担心导航控制器被赋予返回步骤3的返回按钮


我按照此指南执行以下步骤:

“我希望该应用程序返回到Manage Team VC,而不必提及它的位置。”。。“管理团队VC现在将收到一个返回按钮,允许用户返回到步骤3。”这是两个相互矛盾的说法。请选择一个。您正在将
vc
声明为
UIAbbarController
,然后要将其表示为
UIViewController
?请选择一个,麦克唐纳,这有什么矛盾吗?也许我没有正确回答这个问题,或者你没有仔细阅读。但我声明我不想让它提到它的位置,然后提供一个我尝试过的例子,以及它是如何无法工作的。@CECEEXX我删除了“as UITabBarController”部分,感谢您的关注。不过还是崩溃了。它说它有一个致命错误:在展开可选值时意外地发现了nil。我试着用导航控制器?但它仍然崩溃。我再挖一些。这条线是干什么用的
var storyboard=UIStoryboard(名称:“Main”,bundle:nil)。
您不需要它。啊,我想,这个问题更有意义。我应该如何介绍我的“第2步”和“第3步”风险投资?如果我执行推送序列,应用程序将崩溃,因为只有父级是UINavigationController时才能执行推送,而第1步将不执行。另外,您知道解除模式VC是否会在父级上执行“viewWillAppear”功能吗?此外,是否有任何东西阻止我使用unwindSegue来执行此操作?您的“步骤1”也需要嵌入到单独的
UINavigationController
中!我认为您应该实际展示具有到“步骤1”的
rootView
连接的
UINavigationController
。我已经用故事板更新了我的答案。当你想直接从第3步返回到第1步时,可以使用“放松”序列。对于您的用例(添加一个新团队,并放弃整个过程),我建议使用模态表示。谢谢。我最后做的只是做了一个解卷,它实现了我想要的结果,而不必重做我的故事板。不过我还是很感激你的建议!
self.dismissViewControllerAnimated(true, nil)