見出し画像

【徒然iOS】気ままにUIKit87〜Tab Bar タブで画面を切り替える〜

概要

このマガジンは四十を過ぎたおっさんが、

を参考にStoryboardでiOSアプリを完全に趣味で楽しんでいるだけな記事を気ままに上げてます。

今回

をハイ、レッツゴ🕺

前準備

念の為、

  1. バックアップ

をいつも通りやってから本題へ💃

てな感じかな。

とりあえず、、、

てな感じで整理もしといた💦

本題の前に(導入編)

タブバーとは、

画面を切り替えるボタンを並べるためのバー

⒈タブバーコントローラをセット

選んで
適当な位置に〜〜〜
ここはやらなくてもいいけど、見やすいように下に持ってきて
セグエで繋いで
ハイ、完了

⒉分かりやすいように各ビューにイメージをセットしてから、シミュレータで実行

セットして〜〜〜
item1~~~
item2~~~~

めちゃくちゃ簡単でしょ👀
ちなみに、

下にあったビューをふたつとも消して〜〜〜〜
繋ぎたいビューのところで〜〜〜〜
配下のビューとしてセットしてやると〜〜〜
なんてこともできなくもない👀
ただし、
ナビゲーションコントローラの配下ではなくなるので、
ナビゲーションアイテムが消える点に気をつけないとね〜〜〜

なので、

てな感じで元に戻して

本題を進めまする〜〜〜〜🕺

本題

⒈新規ビューにコンテナビューをふたつ配置

ふたつ目を選んでるところ〜〜〜
ま、とりあえずこんな感じで広げて〜〜〜
こんな感じかな💦
後からの調整も面倒くさいので、ここでメニューと繋げとく👀
ハイ、セグエもできた〜〜〜

⒉タブバーを配置

大体こんな感じかな💦

⒊タブバーとコンテナビューをアウトレット接続

タブバーの新規クラスを作って〜〜〜〜
今回のビューにクラスを適用〜〜〜
アウト
レット
接続〜〜〜〜🕺

⒋画面の変化がわかるようにイメージをセット

⒌コード組み込み

//
//  ViewController.swift
//
import UIKit
class ViewController: UIViewController, UITabBarDelegate {
    @IBOutlet weak var testView1: UIView!
    @IBOutlet weak var testView2: UIView!
    @IBOutlet weak var testTabBar: UITabBar!
    //最初からあるメソッド
    override func viewDidLoad() {
        super.viewDidLoad()
        //昼画面のみ表示にする。
        testView1.hidden = false
        testView2.hidden = true
        //デリゲート先を自分に設定する。
        testTabBar.delegate = self
    }
    //ボタン押下時の呼び出しメソッド
    func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem){
        switch item.tag {
        case 1:
            //昼画面を表示する。
            testView1.hidden = false
            testView2.hidden = true
        case 2:
            //夕方画面を表示する。
            testView1.hidden = true
            testView2.hidden = false
        default:
            return
        }
    }
}

を参考に〜〜〜書き換え〜〜〜👀

class TabBarStandardViewController: UIViewController, UITabBarDelegate {
    
    @IBOutlet weak var myTabbar: UITabBar!
    @IBOutlet weak var myContainer1: UIView!
    @IBOutlet weak var myContainer2: UIView!
    //最初からあるメソッド
    override func viewDidLoad() {
        super.viewDidLoad()
        //昼画面のみ表示にする。
        myContainer1.isHidden = false
        myContainer2.isHidden = true
        //デリゲート先を自分に設定する。
        myTabbar.delegate = self
    }
    //ボタン押下時の呼び出しメソッド
    @objc func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem){
        switch item.tag {
        case 1:
            //昼画面を表示する。
            myContainer1.isHidden = false
            myContainer2.isHidden = true
        case 2:
            //夕方画面を表示する。
            myContainer1.isHidden = true
            myContainer2.isHidden = false
        default:
            return
        }
    }
}

⒍設定項目のtagの数字を設定し忘れていたので、設定

tagは1
tagは2

★0と1だとダメなので確実に〜〜〜〜🕺

⒎シミュレータで実行

可愛い😍
のっぺらボーイ🕺

ハイ、完了💃
記事の内容については以上🕺

ブラッシュアップ

AutoLayout~~~~

てな感じで
両方今の位置でPin制約〜〜〜
赤コンフリクトを消して〜〜〜
ハイ、完了🕺

後は、最近恒例の地球儀ボタン〜〜〜〜

配置と接続〜〜〜

記事公開後、

ハイ、完了💃
実機も問題なし🕺

Apple公式

さて、次回は

をレッツゴする🕺
今回でちょっと先に触れちゃったね〜〜〜👀

いいなと思ったら応援しよう!