Как установить два разных контроллера представления для одного элемента панели вкладок? - PullRequest
0 голосов
/ 28 сентября 2019

Я создал UITabBarController и три контроллера представления в раскадровке в качестве элементов панели вкладок.

Я хочу проверить, вошел ли пользователь в систему, используя PFU.current (), когда пользователь нажимает на меню панели третьей вкладки и направляется на страницу входа для незарегистрированных пользователей, а также страницу профиля длязалогиненные пользователи.

Я изо всех сил пытаюсь присвоить ViewController, созданный в раскадровке, программному меню третьей панели вкладок.

Я пробовал

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
        }   
    }

Когда нажимается третий элемент панели вкладок, он должен сначала проверить вход в систему и перейти на страницу в соответствии с условием.(Незарегистрированный: loginPage, зарегестрированный: profilePage)

1 Ответ

0 голосов
/ 28 сентября 2019

Лучше сделать это рано

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]
     } 
}
...