首页 > 解决方案 > 在 Swift 中推送和弹出后视图不显示

问题描述

我试图从一个视图切换到另一个视图,代码运行,但没有任何视图被推送。是因为视图不能同时弹出和推送吗?

推送视图

func showChatControllerForGroup(_ user: [User], groupName: String) {

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let vc: GroupChatMessangingViewController = storyboard.instantiateViewController(withIdentifier: "GroupChatMessangingViewController") as! GroupChatMessangingViewController

        vc.group?.members = user
        vc.group?.name = groupName
        self.navigationController?.pushViewController(vc, animated: true)
}

流行音乐

 let transition = CATransition()
    transition.duration = 0.5
    transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
    transition.type = kCATransitionReveal
    transition.subtype = kCATransitionFromBottom
    navigationController?.view.layer.add(transition, forKey: nil)
    _ = navigationController?.popViewController(animated: true)
        let user = self.chosenUser
        self.nextVC.showChatControllerForGroup(user, groupName: self.groupNameTextField.text!)

标签: iosswift

解决方案


只需在弹出视图控制器之前调用委托方法

let transition = CATransition()
        transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
        transition.type = kCATransitionReveal
        transition.subtype = kCATransitionFromBottom
        navigationController?.view.layer.add(transition, forKey: nil)
    let user = self.chosenUser
            self.nextVC.showChatControllerForGroup(user, groupName: self.groupNameTextField.text!)
        _ = navigationController?.popViewController(animated: true)

推荐阅读