【问题标题】:How to push two view controllers modally without seeing the first one如何在不看到第一个的情况下以模态方式推送两个视图控制器
【发布时间】:2018-01-24 11:18:35
【问题描述】:

我想连续展示两个视图控制器,但看不到第一个。 我希望能够从第二个返回到第一个。

我已阅读this post,但回复集中在使用导航控制器,而我想以模态方式呈现第二个视图控制器。

用例是:我的初始 VC 检查用户是否已登录,如果没有,则显示登录 VC。 如果是,则显示主 VC。 在注销时,我应该能够放松到登录 VC。

【问题讨论】:

    标签: ios uiviewcontroller segue presentviewcontroller


    【解决方案1】:

    一个合适的解决方案是首先呈现第二个视图控制器,并且仅在第二个视图控制器完全出现后才呈现第一个视图控制器。

    InitialViewController

    let secondVc = storyboard!.instantiateViewController(withIdentifier: "Second") as! SecondViewController
    secondVc.initialVc = self
    present(secondVc, animated: true)
    

    SecondViewController

    fileprivate var firstViewDidAppearTime = true
    var initialVc: InitialViewController!
    
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
    
        if firstViewDidAppearTime {
            firstViewDidAppearTime = false
    
            let firstVc = storyboard!.instantiateViewController(withIdentifier: "First")
            initialVc.present(firstVc, animated: false)
        }
    }
    

    【讨论】:

    • 但是我没有导航控制器!
    • 我收到“警告:尝试在 上呈现 ”,其视图不在窗口层次结构中!
    • 我的意思是 firstViewController 和 baseViewController
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    相关资源
    最近更新 更多