首页 > 解决方案 > 关闭模态呈现的视图控制器后切换标签栏控制器视图控制器

问题描述

在我的项目中,您可以从模态视图创建帖子。

当模式视图被关闭(用户按下保存帖子)时,我想将标签栏控制器切换到第二个标签(帖子提要屏幕)。

这个主题类似于我的问题。唯一的区别是这是从模态视图中呈现的。我不知道如何在我的代码中实现它(标签栏为零) 在 Swift 中以编程方式切换标签栏

我添加了 3 张图片以使这个问题更清楚

实现的功能

代码截图

控制台消息

@objc func saveAction(sender: UIButton) {
    print ("> save pressed")
    print(presentingViewController?.tabBarController)
    print(presentingViewController)
    
    presentingViewController?.tabBarController?.selectedIndex = 1
    dismiss(animated: true)
} 

编辑:抱歉堆栈溢出不允许我添加图像

标签: swiftuinavigationcontrollermodal-dialoguitabbarcontrolleruitabbar

解决方案


您可以使用委托模式来做到这一点。但是,如果您不想为此添加委托,则可以执行如下所示的操作;

selectedIndex您可以通过更改的属性来切换标签栏tabBarController

if let presenter = presentingViewController as? LibraryViewController {
        presenter.tabBarController?.selectedIndex = 1
    }
dismiss(animated: true)

如果您在标签栏中的导航控制器上显示模式,请使用:

    if let tabBar = presentingViewController as? UITabBarController {
        tabBar.selectedIndex = 1
    }
    dismiss(animated: true)

推荐阅读