Segue 不断重新加载屏幕
Segue Constantly Reloading Screen
我是编码新手,过去几周一直在构建应用程序。我有点卡住了,不知道从哪里开始寻找。我有一个应用程序可以在用户之间发送消息,拥有社交媒体页面,并在应用程序中显示所有用户。我有一个附加选项卡,我想授予 2 个用户管理员权限。其他用户可以访问同一选项卡,但看到的内容不同。
我有一个 json 树,如下所示:
users
|
|
|
Jjhi848hjnef8
|
|
|
name:
email:
profileImageUrl:
ETC:
我还有一个消息树,还有用户消息树。我不想与用户创建一个新的 json 树,然后设置角色的子类别,因为我希望所有用户都能够互相发送消息并可以访问除一个视图控制器之外的相同内容在选项卡式应用程序中。有没有办法完成这个 cleanly/effectively,这样我就不必重新编码消息、个人资料和所有用户选项卡?
这是我正在尝试的代码 运行:
import UIKit
import Firebase
class ToDoViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
checkIfAdmin()
}
func checkIfAdmin() {
Database.database().reference().child("users").child(Auth.auth().currentUser!.uid).child("userType").observeSingleEvent(of: .value, with: {
(snapshot) in
switch snapshot.value as! String {
// If our user is admin...
case "Admin":
// ...redirect to the admin page
guard let vc = self.storyboard?.instantiateViewController(withIdentifier: "AdminVC") else { return }
vc.modalPresentationStyle = .fullScreen
self.present(vc, animated: true)
// If out user is a regular user...
case "Talent":
// ...redirect to the talent page
guard let vc = self.storyboard?.instantiateViewController(withIdentifier: "TalentVC") else { return }
vc.modalPresentationStyle = .fullScreen
self.present(vc, animated: true)
// If the type wasn't found...
default:
// ...print an error
print("Error: Couldn't find type for user")
}
})
}
}
我的 userType 节点的值为 Admin 或 Talent。我试图让已标记为管理员的用户在我的选项卡控制器中看到特定的视图控制器。我现在可以看到不同的页面,但是我遇到了一个小故障,它以模态方式显示视图控制器并且它不断地重新加载页面并且不会停止移动。如果我将动画设置为 false,它会卡住并且不允许任何交互。
仅通过查看此代码片段很难说出为什么会发生这种情况。
我认为您还应该上传 TalentVC 视图控制器的代码
我是编码新手,过去几周一直在构建应用程序。我有点卡住了,不知道从哪里开始寻找。我有一个应用程序可以在用户之间发送消息,拥有社交媒体页面,并在应用程序中显示所有用户。我有一个附加选项卡,我想授予 2 个用户管理员权限。其他用户可以访问同一选项卡,但看到的内容不同。
我有一个 json 树,如下所示:
users
|
|
|
Jjhi848hjnef8
|
|
|
name:
email:
profileImageUrl:
ETC:
我还有一个消息树,还有用户消息树。我不想与用户创建一个新的 json 树,然后设置角色的子类别,因为我希望所有用户都能够互相发送消息并可以访问除一个视图控制器之外的相同内容在选项卡式应用程序中。有没有办法完成这个 cleanly/effectively,这样我就不必重新编码消息、个人资料和所有用户选项卡?
这是我正在尝试的代码 运行:
import UIKit
import Firebase
class ToDoViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
checkIfAdmin()
}
func checkIfAdmin() {
Database.database().reference().child("users").child(Auth.auth().currentUser!.uid).child("userType").observeSingleEvent(of: .value, with: {
(snapshot) in
switch snapshot.value as! String {
// If our user is admin...
case "Admin":
// ...redirect to the admin page
guard let vc = self.storyboard?.instantiateViewController(withIdentifier: "AdminVC") else { return }
vc.modalPresentationStyle = .fullScreen
self.present(vc, animated: true)
// If out user is a regular user...
case "Talent":
// ...redirect to the talent page
guard let vc = self.storyboard?.instantiateViewController(withIdentifier: "TalentVC") else { return }
vc.modalPresentationStyle = .fullScreen
self.present(vc, animated: true)
// If the type wasn't found...
default:
// ...print an error
print("Error: Couldn't find type for user")
}
})
}
}
我的 userType 节点的值为 Admin 或 Talent。我试图让已标记为管理员的用户在我的选项卡控制器中看到特定的视图控制器。我现在可以看到不同的页面,但是我遇到了一个小故障,它以模态方式显示视图控制器并且它不断地重新加载页面并且不会停止移动。如果我将动画设置为 false,它会卡住并且不允许任何交互。
仅通过查看此代码片段很难说出为什么会发生这种情况。 我认为您还应该上传 TalentVC 视图控制器的代码