【问题标题】:Swift Storyboard - how to not present modallySwift Storyboard - 如何不以模态方式呈现
【发布时间】:2020-12-03 12:37:33
【问题描述】:

我正在检查用户是否已登录或已经登录。如果是,我实现以下代码:

                        //self.performSegue(withIdentifier: "LogInToTagsy", sender: nil)
                        let storyboard = UIStoryboard(name: "Main", bundle: nil)
                        let vc = storyboard.instantiateViewController(identifier: "tabBarController")

                        self.show(vc, sender: self)

我也尝试了注释掉的行。 (并且在故事板中有一种“表演”)。 这两个选项都以模态方式呈现。我不想要这个。如何正常呈现?

我也尝试过嵌入导航控制器,它为所有屏幕提供了两个导航栏。如果您需要更多信息,请告诉我,谢谢。

【问题讨论】:

    标签: swift storyboard segue


    【解决方案1】:

    您从中调用show() 代码的controller 应该是navigation controller,这样才能实现正常推送,而不是modally present。因此,在您的情况下,您要么从第一个点击栏项目控制器调用此代码,要么从第二个项目 controller ... controller 应该嵌入 navigation

    而不是self.show(vc, sender: nil) 应该是

    self.navigationController?.show(vc, sender: nil)
    

    【讨论】:

    • 好的,谢谢。这就是我最初的样子。但是,当我这样做时,我有一个额外的导航栏(或者我的导航栏被向下推)。添加了一张照片。我在导航控制器中也有一个标签。
    • 好吧,您应该显示控制器而不是 NavigationController ...如果您想从 Navigation 控制器推送 Navigation 控制器,它是多余的并且没有用...如果下一个控制器嵌入到 Navigation 中,它将以模态方式显示它...它应该只是控制器:)
    • 好的,这样就可以了,但是现在我的导航栏按钮和标题不见了。我尝试以编程方式和故事板将它们添加回来
    • 是的..您可以发布另一个问题...详细介绍导航栏...您尝试了什么...以及您的期望
    • 刚刚修复它 - 我只需要隐藏第一个导航栏!
    猜你喜欢
    • 1970-01-01
    • 2015-08-22
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多