【问题标题】:Swift Navigation to Specific Child VC with tabBarControllers使用 tabBarControllers 快速导航到特定子 VC
【发布时间】:2018-05-07 19:28:51
【问题描述】:

我有一个 tabBarController 设置到四个导航控制器,其中包含进一步到一些子视图控制器。在这种情况下,我试图转到导航控制器的子视图控制器之一。我已经能够使用代码转换 tabBar 页面。 self.tabBarController?.selectedIndex = 4 但是在我需要从这个页面上执行一个子视图控制器之后。任何帮助将不胜感激。

整体 tabBarController 设置

带有子视图控制器的设置选项卡控制器页面

【问题讨论】:

    标签: ios swift navigation tabbarcontroller


    【解决方案1】:

    1) 将标签栏子控制器作为属性存储在 UITabBarController 的数组中,例如

    var tabViewControllers: [UIViewController]!
    

    2) 设置self.tabBarController?.selectedIndex = desiredIndex后,让目标孩子执行想要的动作。

    let targetNavigationController = self.tabViewControllers[desiredIndex] as? UINavigationController
    let yourTargetViewController = targetNavigationController?.viewControllers.first as? YourTargetViewController
    // From here do whatever you want: call functions, perform segues, push to navigation stack or present modals, e.g.:
    yourTargetViewController?.performSegue(...)
    

    【讨论】:

    • 你就是男人!非常感谢!认真地解决了,就像一个星期的绞尽脑汁!
    • @AlexHughes 请接受答案,如果对您有帮助,请点赞:)
    • 我接受了它,但它不会让我以我的声誉投票。我得到了它的工作与你的建议。但我也试图从标签栏视图的模式弹出窗口中做同样的事情。你知道怎么做吗?非常感谢!
    • @AlexHughes 在yourTargetViewController.presentedViewController as? YourModalViewController寻找你的模态VC
    • 我想我没有描述清楚。当我在模态弹出视图控制器上时,我试图按下一个按钮。关闭模态VC,然后转到目标视图控制器并执行segue。我似乎无法在模式弹出窗口下方引用根视图控制器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-09
    • 2015-11-12
    • 2013-09-21
    • 2012-02-03
    • 2022-11-28
    • 2015-12-11
    • 2017-12-15
    相关资源
    最近更新 更多