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のアイコンに関して

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

2Dバーコードをスキャンする

なんと2Dバーコード読み込み機能はAVFoundationに実装されています。GitHubにbowstさんが公開しているシンプルなソースがあったので共有です

SQLiteを使いたい。ラッパーを検証してみる。(#2)

前回の記事でSQLiteのラッパのRMDB, SWiftData,SQLite.swiftの検証をトライしまいたが、時間の問題で頓挫してしまいましたので続きです。 。ある程度準備が完了しましたので、それぞれのサンプルを動かしてみてみようと思います。InsertとSelectとインストール感を比較してみます。

URLエンコードとデコード

サーバとデータのやりとりをしているとURLエンコードしないと文字化けしちゃったりと問題がでる場合があります。 phpのurlencodeやurldecodeと連携させる場合等、Swift側でどうやってエンコードすれば良いかの方法を記載しております
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!