首页 > 解决方案 > 查看控制器关闭问题

问题描述

我正在设置一个具有 firebase 身份验证的新应用程序

当您是注册用户时,您可以创建和发布添加(项目)以便其他人可以看到它。但是,如果您没有登录用户,它会显示一个登录弹出窗口!有一个 DISMISS 按钮!

例如,我尝试创建一个 if 语句

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

        if segue.identifier == "itemToAddItemSeg" {
            let vc = segue.destination as! AddItemViewController
            vc.category = category!
            }
        }

    private func showItemView(_ item: Item) {

        let itemVC = UIStoryboard.init(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "itemView") as! ItemViewController
        itemVC.item = item

        self.navigationController?.pushViewController(itemVC, animated: true)  
    }

    //Mark: Load items
    private func loadItems() {
        downloadItemsFromFirebase(category!.id) { (allItems) in
            self.itemArray = allItems
            self.tableView.reloadData()   
        }
    }

    private func showLoginView() {
        let loginView = UIStoryboard.init(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "loginView") 
        self.present(loginView, animated: true, completion: nil)
    }  
}

需要实现哪些代码?- 所以如果我的showlogin 弹出来!有人会按下关闭按钮它不会继续AddItemViewCotroller

此外,它将保持在同一页面上itemViewController

标签: iosswiftfirebasedismissdismissviewcontroller

解决方案


斯威夫特 5

dismiss(animated: true, completion: nil)

关闭视图控制器以模态方式呈现的视图控制器。

我无法告诉您如何根据您提供的代码调用您的解除函数,但一个实现解除方法的示例:

func dismissButtonTapped() {
   dismiss(animated: true, completion: nil) 
}

同样,不确定您是如何调用函数的,但上面的示例应该足以引导您朝着正确的方向前进。

这将关闭 showLoginView 并将用户保留在 itemViewController 上。

由于您在道德上展示了您的 loginView,这应该可以解决问题。

查看有关该方法的文档以获取更多详细信息。dismiss(animated:, completion:)


推荐阅读