如何将两个不同的视图控制器设置为同一个标签栏项目?



我在情节提要中创建了一个UITabBarController和三个视图控制器作为其选项卡栏项。

我想要的是当用户按下第三个标签栏菜单并直接进入未登录用户的登录页面和登录用户的个人资料页面时,检查用户是否使用 PFU.current(( 登录

。我正在努力以编程方式将在情节提要中创建的视图控制器分配给第三个选项卡栏项目菜单。

我试过了

let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let userProfileVC = storyBoard.instantiateViewController(withIdentifier: "UserProfileViewController") as! UserProfileViewController
self.viewControllers?[2] = userProfileVC
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
switch item.tag {
case 0:
print(0)
case 1:
print(1)
case 2:
if (PFUser.current() != nil) {
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let userProfileVC = storyBoard.instantiateViewController(withIdentifier: "UserProfileViewController") as! UserProfileViewController
self.viewControllers?[2] = userProfileVC
}else{
print("not logged in")
}
default:
break
}   
}

当按下第三个标签栏项目时,它应该首先检查登录并根据条件直接进入页面。(未登录:登录页面,登录:个人资料页面(

最好早点做

class Tab:UITabBarController { 
override func viewDidLoad() {
super.viewDidLoad() 
var vc3:UIViewController! 
if (PFUser.current() != nil) { 
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let userProfileVC = storyBoard.instantiateViewController(withIdentifier: "UserProfileViewController")!
vc = userProfileVC
}else{
print("not logged in")
vc = ///// 
} 
self.viewControllers = [vc1,vc2,vc3]
} 
}

最新更新