【问题标题】:Swift Prepare for segue interrupted by TabBarControllerSwift Prepare for segue 被 TabBarController 打断
【发布时间】:2016-06-14 00:37:33
【问题描述】:

我目前有一个带有我的数据的 tableview 的情节提要,我相信我使用 didSelectRowAtIndexPath 和 prepareForSegue 函数正确传递了该数据。
我的问题是,当我选择某个单元格时,我的演员表变得不正确,因为我有一个标签栏控制器,用于保存我的视图,以便与这些分隔信息一起显示。
我希望我的演员是:

let destination = segue.destinationViewController as! DownloadViewController

但我收到一个错误,因为 segue 将首先进入标签栏控制器。这个错误对我来说非常有意义,但我不确定如何在不完全摆脱标签栏控制器的情况下绕过它。这是我的故事板的图片,以帮助显示整体流程。

http://imgur.com/7gFKKIZ

感谢任何帮助。

【问题讨论】:

    标签: ios swift segue


    【解决方案1】:

    UITabBarController 有一个包含其连接的 viewController 的数组,用于访问例如第一个尝试

    let destination = (segue.destinationViewController as! UITabBarController).viewControllers?.first as! DownloadViewController
    

    【讨论】:

    • 谢谢,这就是我要找的东西!
    【解决方案2】:

    如果适合您,您可以使用所需的第一个选项卡的模态演示来显示,而不是使用 segue。

    let displayFirstVC = storyboard.instantiateViewControllerWithIdentifier("newVC") as! UIViewController
    self.presentViewController(displayFirstVC , animated: true, completion: nil)
    

    当您实例化ViewControllerWithIdentifier 时,您必须为FirstViewController 创建一个故事板名称,名称为newVC。

    您还需要将 UIViewController 替换为您为视图控制器提供的名称。

    更多细节在这里。 Instantiate and Present a viewController in Swift

    【讨论】:

    • 有没有办法用这种方法传递信息?类似于准备 ForSegue 所做的事情?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多