Swift転職なら=>【LevTech】
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大

頭痛が減ったので共有です!

rebuild.fmを応援しています!

HOME > UITabBarController

UITabBarController

スマホ画面下にタブが出てきて画面を切り替えできるUITabBarViewControllerクラスです。UITabBarItemの記事を追加しましたがUITabbarの記事がなかったので追加しました。(※目のチカチカにご注意ください。)

サンプル画像

UITabBarControllerのクラス階層


NSObject

UIResponder

UIViewController

UITabBarController

参考:UIKit Framework Reference UITabBarController Class Reference
参考:013 UITabBarControllerでタブの表示
参考:[Swift] UITabBarControllerでタブ選択時のイベントを取得する
参考:swiftでUITabBarの特定のタブをタップした時にモーダル
参考:[Swift]UITabBarで画面遷移する方法

やってみた

AppDelegateでUITabBarControllerとその他のUIViewControllerを作成します。FirstViewControllerとSecondViewControllerは ほぼ同じです。背景カラーをViewOnLoadedで設定しているだけです。UITabBarContorllerの中に最初に表示されるのはFirstViewControllerになっているサンプルです。

AppDelegate


import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    
    private var window: UIWindow?
    private var myTabBarController: UITabBarController!
    
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {
        
        window = UIWindow(frame: UIScreen.mainScreen().bounds)
        
        //UIViewControllerをタブ数分作成してUITabViewControllerに埋め込む
        let firstView: UIViewController = FirstViewController()
        let secondView: UIViewController = SecondViewController()
        firstView.tabBarItem = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.Featured, tag: 1)//アイコン
        secondView.tabBarItem = UITabBarItem(tabBarSystemItem: UITabBarSystemItem.Bookmarks, tag: 2)
        let viewArr = NSArray(objects: firstView, secondView)
        myTabBarController = UITabBarController()
        myTabBarController?.setViewControllers(viewArr as [AnyObject], animated: false)
        self.window!.rootViewController = myTabBarController
        
        self.window!.makeKeyAndVisible()
        
        return true
    }
}

FirstViewController


import UIKit

class FirstViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = UIColor.redColor();
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

SecondViewController


import UIKit

class SecondViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = UIColor.blueColor()
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

カスタマイズ

さて、UITabBarControllerのデフォルトのアイコン(UITabBarSystemItem)ですが複数あるので紹介します。

メンバ名アイコン
Bookmarksサンプル画像
Contactsサンプル画像
Downloadsサンプル画像
Favoritesサンプル画像
Featuredサンプル画像
Historyサンプル画像
Moreサンプル画像
MostRecentサンプル画像
MostViewedサンプル画像
Recentsサンプル画像
Searchサンプル画像
TopRatedサンプル画像

上記はiOS8です。iOSのバージョンが変われば変更されるのでご了承ください。

上記UITabBarSystemItemを利用する場合、タイトルを変更したい場合は結局アイコンを作成する必要があります。。。

まとめ

UITabBarSystemItemのタイトルは日本語のiOSだったら日本語になるんだったっけ。シュミレータなので確認できませんでしたorz アイコンが必要な場合はこちらの記事をご確認ください!UITabBarItemのアイコンに関して

↓こんな記事もありますよ!

カスタムクラスを作成時いつも忘れる。継承クラス作成時のメモ

カスタムクラスを作成する時いつもUIViewを継承する際のrequired Initの箇所でハマってしまうので覚書です。

Pre特殊文字難民

記事を書いている時によくつまずくことがあります。preでコードを表示する際に、 カッコを使うと文章が消えてしまったり、ドルマークの変数が表示できなかったり。その度に検索して探しているのでサイトの中に入れてしまいます。 以前のバックスラッシュもそうですが、こういった特殊文字難民対策のページにしておきます。

UITabBarController

スマホ画面下にタブが出てきて画面を切り替えできるUITabBarViewControllerクラスです。UITabBarItemの記事を追加しましたがUITabbarの記事がなかったので追加しました。(※目のチカチカにご注意ください。)
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!