ios - 查看控制器关闭问题
问题描述
我正在设置一个具有 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
解决方案
斯威夫特 5
dismiss(animated: true, completion: nil)
关闭视图控制器以模态方式呈现的视图控制器。
我无法告诉您如何根据您提供的代码调用您的解除函数,但一个实现解除方法的示例:
func dismissButtonTapped() {
dismiss(animated: true, completion: nil)
}
同样,不确定您是如何调用函数的,但上面的示例应该足以引导您朝着正确的方向前进。
这将关闭 showLoginView 并将用户保留在 itemViewController 上。
由于您在道德上展示了您的 loginView,这应该可以解决问题。
查看有关该方法的文档以获取更多详细信息。dismiss(animated:, completion:)
推荐阅读
- javascript - 为什么我的 JavaScript 日期/时间对象存储为地图而不是 Cloud Firestore 中的时间戳?
- excel - 在 VBA 中引用命名范围
- c# - Web Api 属性路由与 POST 请求不匹配
- c++ - 使用全局 lua_State* 变量
- microsoft-graph-api - 实际工作示例代码或指南与实际工作代码 1. 验证 C# .net 核心控制台应用程序和 2. 调用?网络 API
- python - 如何在 csv 文件中表示嵌套值?我想将文件无缝加载到(嵌套)python 字典中
- azure-devops - 如果有人在 Azure devops 上@提及我,如何让 Microsoft Flow 在团队中通知我
- amazon-web-services - 如何使用 CloudFormation 中的 CodeBuild 指定 GitHub 访问令牌
- haskell - 为什么这个镜头功能需要类型签名?
- npm - TypeError:无法解析模块说明符“@open-wc/testing”。相对引用必须以“/”、“./”或“../”开头