ios] 코드로 UITabBarController 만들고 탭 별 뷰컨트롤러 네비게이션 컨트롤러로 만들고 tabBarItem 수정하기
우선 각 각의 컨트롤러는
import UIKit
class SearchController: UIViewController{
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .yellow
}
}
이런식으로 백그라운드 색상만 설정은 해놨다.
그리고 UITabBarController을 상속받은 MainTabController에서 templateNavigationController함수를 만들어 각 각의 뷰컨트롤러를 네비게이션컨트롤러로 선언을 해주고 unselectedImage와 selectedImage를 설정을 해줬다.
func configureViewControllers(){
view.backgroundColor = .white
let feed = templateNavigationController(unselectedImage: imageLiteral(resourceName: "home_unselected"), selectedImage: imageLiteral(resourceName: "home_selected"), rootViewController: FeedController())
let search = templateNavigationController(unselectedImage: imageLiteral(resourceName: "search_unselected"), selectedImage: imageLiteral(resourceName: "search_selected"), rootViewController: SearchController())
let imaegSelector = templateNavigationController(unselectedImage: imageLiteral(resourceName: "plus_unselected"), selectedImage: imageLiteral(resourceName: "plus_unselected"), rootViewController: ImageSelectorController())
let notifications = templateNavigationController(unselectedImage: imageLiteral(resourceName: "like_unselected"), selectedImage: imageLiteral(resourceName: "like_selected"), rootViewController: NotificationController())
let profile = templateNavigationController(unselectedImage: imageLiteral(resourceName: "profile_unselected"), selectedImage: imageLiteral(resourceName: "profile_selected"), rootViewController: ProfileController())
viewControllers = [feed,search,imaegSelector,notifications,profile]
tabBar.tintColor = .black
}
viewControllers = [] 을 통해 각 텝을 초기화
tabBar.tintColor = .black 을 통해 텝바의 색상을 설정해줬다.
func templateNavigationController(unselectedImage: UIImage, selectedImage: UIImage, rootViewController: UIViewController)-> UINavigationController{
let nav = UINavigationController(rootViewController: rootViewController)
//rootViewController을 UINavigationController으로 선언을 해주는 부분
nav.tabBarItem.image = unselectedImage
nav.tabBarItem.selectedImage = selectedImage
return nav
}
UIViewController을 받아서 UINavigationController으로 리턴을 해주는 함수.