Navigation Bar & Tap Bar (code)
import UIKit
class LoginViewController: UIViewController {
// ๋ก๊ทธ์ธ ๋ฒํผ
private lazy var nextButton: UIButton = {
let button = UIButton(type: .custom)
button.backgroundColor = .blue
button.setTitle("Login", for: .normal)
button.setTitleColor(.white, for: .normal)
button.titleLabel?.font = .systemFont(ofSize: 20, weight: .bold)
button.translatesAutoresizingMaskIntoConstraints = false
button.addTarget(self, action: #selector(nextButtonTapped), for: .touchUpInside)
return button
}()
// ๊ตณ์ด ๋ทฐ๋ฅผ ๋ฐ๋ก ๋ง๋ค์ง ์์์ (MVCํจํด์ผ๋ก ๋ง๋ค์ง ์์์)
override func viewDidLoad() {
super.viewDidLoad()
makeUI()
}
// UI์ค์ ํ๋ ์ฝ๋, ๋ฒํผ์ ์คํ ๋ ์ด์์
func makeUI() {
view.addSubview(nextButton)
NSLayoutConstraint.activate([
nextButton.widthAnchor.constraint(equalToConstant: 120),
nextButton.heightAnchor.constraint(equalToConstant: 45),
nextButton.centerXAnchor.constraint(equalTo: view.centerXAnchor),
nextButton.centerYAnchor.constraint(equalTo: view.centerYAnchor)
])
}
// ๋ฒํผ ๋๋ฅด๋ฉด ๋์ํ๋ ์ฝ๋ ===> ์ฝ๋๋ก ํญ๋ฐ + ๋ค๋น๊ฒ์ด์
๋ฐ ์ค์
@objc func nextButtonTapped() {
// ํญ๋ฐ์ปจํธ๋กค๋ฌ์ ์์ฑ
let tabBarVC = UITabBarController()
// ์ฒซ๋ฒ์งธ ํ๋ฉด์ ๋ค๋น๊ฒ์ด์
์ปจํธ๋กค๋ฌ๋ก ๋ง๋ค๊ธฐ (๊ธฐ๋ณธ๋ฃจํธ๋ทฐ ์ค์ )
let vc1 = UINavigationController(rootViewController: FirstViewController())
let vc2 = SecondViewController()
let vc3 = ThirdViewController()
let vc4 = FourthViewController()
let vc5 = FifthViewController()
// ํญ๋ฐ ์ด๋ฆ๋ค ์ค์
vc1.title = "Main"
vc2.title = "Search"
vc3.title = "Post"
vc4.title = "Likes"
vc5.title = "Me"
// ํญ๋ฐ๋ก ์ฌ์ฉํ๊ธฐ ์ํ ๋ทฐ ์ปจํธ๋กค๋ฌ๋ค ์ค์
tabBarVC.setViewControllers([vc1, vc2, vc3, vc4, vc5], animated: false)
tabBarVC.modalPresentationStyle = .fullScreen
tabBarVC.tabBar.backgroundColor = .white
// ํญ๋ฐ ์ด๋ฏธ์ง ์ค์ (์ด๋ฏธ์ง๋ ์ ํ์ด ์ ๊ณตํ๋ ๊ฒ์ผ๋ก ์ฌ์ฉ)
guard let items = tabBarVC.tabBar.items else { return }
items[0].image = UIImage(systemName: "square.and.arrow.up")
items[1].image = UIImage(systemName: "folder")
items[2].image = UIImage(systemName: "paperplane")
items[3].image = UIImage(systemName: "doc")
items[4].image = UIImage(systemName: "note")
// ํ๋ฆฌ์ ํธ๋ก ํญ๋ฐ๋ฅผ ๋์ฐ๊ธฐ
present(tabBarVC, animated: true, completion: nil)
}
}
Swift
๋ณต์ฌ