【问题标题】:Unwind segue WITHOUT Storyboards using Swift使用 Swift 在没有情节提要的情况下展开 segue
【发布时间】:2016-07-02 02:38:36
【问题描述】:

我似乎无法找到解决此问题的方法。我发现的所有关于展开转场的主题都通过情节提要实现转场。

我正在尝试学习如何在代码中纯粹制作我的布局。所以在我的新 Xcode 项目中,我正在删除情节提要文件。

我想在我的视图控制器上做一个 unwind segue,将用户登录到我的应用程序的主屏幕。当用户成功登录后,视图应该会展开。

谁能指出我如何仅使用代码实现此效果的正确方向?

【问题讨论】:

  • 查看这个答案的第二部分(前半部分是segues,第二部分是没有segues)stackoverflow.com/a/33716102/1630618
  • 嘿,谢谢,这行得通,但需要额外的一行。我的呈现视图控制器是一个导航控制器,而不是根视图控制器,在我的情况下,它是我想要返回的,并在dismissViewController 方法完成之前更改它的值。我做了 destinationVC = navController.viewControllers[0] 让它工作
  • 听起来不错。您可能还想谷歌代表团。更合适的划分是被调用的 VC 不知道调用者的任何信息(比如它的类)。您可以通过定义调用者实现的协议来实现这一点。在推送被调用者之前,您在被调用者中设置了对调用者的引用。引用是一个带有协议类型的弱指针。您在委托指针上调用协议方法以传回数据。
  • @vacawama 非常感谢,我查看了如何实现委托,它达到了我想要的结果,现在我知道这是完成这项任务的正确方法。你们的cmets基本上回答了我的问题!
  • 很高兴能帮上忙!

标签: ios xcode swift segue unwind-segue


【解决方案1】:

如果没有作为情节提要项目的转场,您将无法执行任何“转场”动作。

如果您要转换到的视图是导航堆栈上的第一个视图,您可以使用self.navigationController?.popToRootViewControllerAnimated(true)

如果你只是想去另一个视图控制器,你可以使用

presentViewController

【讨论】:

    【解决方案2】:

    如果当前视图控制器以模态方式呈现,您也可以dismissViewControllerAnimated

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 2017-04-26
      • 1970-01-01
      • 2014-04-21
      • 1970-01-01
      • 1970-01-01
      • 2014-02-07
      相关资源
      最近更新 更多