【Swift】コードでUITabBarControllerを実装する
8336 ワード
Storyboardを使わずに、コードのみでUITabBarControllerを実装する方法まとめ。
環境
- Xcode12.4
- Swift5
1. 各タブに表示するViewControllerを準備する
今回は、以下のファイルを新規作成する。
・FirstViewController
・SecondViewController
・ThirdViewController
・FourthViewController
タブを切り替えた際に、わかりやすいようにそれぞれの背景色だけ変更しておく。
FirstViewController
import UIKit
class FirstViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .red
}
}
2. ViewControllerをUITabBarControllerに設定する
MainTabController
import UIKit
class MainTabController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
configureViewControllers()
}
func configureViewControllers() {
let first = FirstViewController()
first.tabBarItem = UITabBarItem(title: "Home", image: UIImage(systemName: "house"), selectedImage: nil)
let second = SecondViewController()
second.tabBarItem = UITabBarItem(title: "Chat", image: UIImage(systemName: "message"), selectedImage: nil)
let third = ThirdViewController()
third.tabBarItem = UITabBarItem(title: "Book", image: UIImage(systemName: "book"), selectedImage: nil)
let fourth = FourthViewController()
fourth.tabBarItem = UITabBarItem(title: "Person", image: UIImage(systemName: "person"), selectedImage: nil)
viewControllers = [first, second, third, fourth]
}
}
MainTabController
import UIKit
class MainTabController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
configureViewControllers()
}
func configureViewControllers() {
let first = FirstViewController()
first.tabBarItem = UITabBarItem(title: "Home", image: UIImage(systemName: "house"), selectedImage: nil)
let second = SecondViewController()
second.tabBarItem = UITabBarItem(title: "Chat", image: UIImage(systemName: "message"), selectedImage: nil)
let third = ThirdViewController()
third.tabBarItem = UITabBarItem(title: "Book", image: UIImage(systemName: "book"), selectedImage: nil)
let fourth = FourthViewController()
fourth.tabBarItem = UITabBarItem(title: "Person", image: UIImage(systemName: "person"), selectedImage: nil)
viewControllers = [first, second, third, fourth]
}
}
Storyboardを使わない設定に変更する
最初はMain.storyboard
が呼ばれるようになっているため、修正する。
-
TARGETS > General > Development Info
のMain Interfaceを空白にする。 - Info.plistの
Information Property List > Application Scene Manifest > Scene Configuration > Application Session Role > Item 0 > Storyboard Name
の項目を削除する。 - Info.plistの
Information Property List > Main storyboard file base name
の項目を削除する。 - SceneDelegate.swiftを修正する。
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let scene = scene as? UIWindowScene else { return }
window = UIWindow(windowScene: scene)
window?.rootViewController = MainTabController()
window?.makeKeyAndVisible()
}
Author And Source
この問題について(【Swift】コードでUITabBarControllerを実装する), 我々は、より多くの情報をここで見つけました https://qiita.com/tty_0/items/d3f8c2be962a6e2774a9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .