Hi, this is my tab view controller which initialises ProfileController(...)
// MainTabBarController.swift
// AWSFullStackSocial
//
// Created by Develoment on 20/07/2020.
// Copyright © 2020 Develoment. All rights reserved.
//
import UIKit
class MainTabBarController: UITabBarController, UITabBarControllerDelegate, UINavigationControllerDelegate {
let viewModel: ViewModel
//lazy load so we can inject our viewModel
private lazy var homeController = HomeController(viewModel: self.viewModel)
private let imagePickerController = UIViewController()
lazy var profileController = ProfileController(viewModel: self.viewModel, user: self.viewModel.currentUser.value)
override func viewDidLoad() {
super.viewDidLoad()
self.delegate = self
setupComponents()
}
fileprivate func setupComponents() {
let homeTabBarController = UINavigationController(rootViewController: self.homeController)
homeTabBarController.tabBarItem.image = imageLiteral(resourceName: "home")
let imagePickerTabBarController = UINavigationController(rootViewController: self.imagePickerController)
imagePickerTabBarController.tabBarItem.image = imageLiteral(resourceName: "plus")
let profileTabBarController = UINavigationController(rootViewController: self.profileController)
profileTabBarController.tabBarItem.image = imageLiteral(resourceName: "home")
self.viewControllers = [homeTabBarController, imagePickerTabBarController, profileTabBarController]
}
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
if self.viewControllers?.firstIndex(of: viewController) == 1 {
let imagePicker = UIImagePickerController()
imagePicker.delegate = self
self.present(imagePicker, animated: true)
return false
}
// if self.viewControllers?.firstIndex(of: viewController) == 2 {
// if let user = self.viewModel.currentUser.value {
// self.profileController.user = user
// }
// }
return true
}
init(viewModel: ViewModel) {
self.viewModel = viewModel
super.init(nibName: nil, bundle: nil)
}
func refreshPosts() {
self.homeController.refreshPosts()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
Topic:
Programming Languages
SubTopic:
Swift
Tags: