使用 Swift 在没有情节提要的情况下展开 segue
Posted
技术标签:
【中文标题】使用 Swift 在没有情节提要的情况下展开 segue【英文标题】:Unwind segue WITHOUT Storyboards using Swift 【发布时间】:2016-07-02 02:38:36 【问题描述】:我似乎无法找到解决此问题的方法。我发现的所有关于展开转场的主题都通过情节提要实现转场。
我正在尝试学习如何在代码中纯粹制作我的布局。所以在我的新 Xcode 项目中,我正在删除情节提要文件。
我想在我的视图控制器上做一个 unwind segue,将用户登录到我的应用程序的主屏幕。当用户成功登录后,视图应该会展开。
谁能指出我如何仅使用代码实现此效果的正确方向?
【问题讨论】:
查看这个答案的第二部分(前半部分是segues,第二部分是没有segues)***.com/a/33716102/1630618 嘿,谢谢,这行得通,但需要额外的一行。我的呈现视图控制器是一个导航控制器,而不是根视图控制器,在我的情况下,它是我想要返回的,并在dismissViewController 方法完成之前更改它的值。我做了 destinationVC = navController.viewControllers[0] 让它工作 听起来不错。您可能还想谷歌代表团。更合适的划分是被调用的 VC 不知道调用者的任何信息(比如它的类)。您可以通过定义调用者实现的协议来实现这一点。在推送被调用者之前,您在被调用者中设置了对调用者的引用。引用是一个带有协议类型的弱指针。您在委托指针上调用协议方法以传回数据。 @vacawama 非常感谢,我查看了如何实现委托,它达到了我想要的结果,现在我知道这是完成这项任务的正确方法。你们的cmets基本上回答了我的问题! 很高兴能帮上忙! 【参考方案1】:如果没有作为情节提要项目的转场,您将无法执行任何“转场”动作。
如果您要转换到的视图是导航堆栈上的第一个视图,您可以使用self.navigationController?.popToRootViewControllerAnimated(true)
如果你只是想去另一个视图控制器,你可以使用
presentViewController
【讨论】:
【参考方案2】:如果当前视图控制器以模态方式呈现,您也可以dismissViewControllerAnimated
。
【讨论】:
以上是关于使用 Swift 在没有情节提要的情况下展开 segue的主要内容,如果未能解决你的问题,请参考以下文章