2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Tabmanのつまずきポイント

Last updated at Posted at 2020-02-01

完成予想図

tabman.gif

Tabman参考記事

公式HPを参照するとわかりやすいです!
https://github.com/uias/Tabman/blob/master/Cartfilehttps://github.com/uias/Tabman/blob/master/Cartfile

つまずきやすいところ

親コントローラーと子コントローラーを作ります!
この時、コントローラー同士をsegueでつなぐ必要はありません!
スクリーンショット 2020-02-01 9.56.12.png

注意点①

segueで繋げていない代わりに、storyboardで、Moduleを指定してあげる必要があります!
ファイル名で指定してあげましょう!
スクリーンショット 2020-02-01 10.10.50.png

注意点②

タブの名前が複数の時は、for文を使って一つずついれて返しましょう!(以下コード参照)

 let titilename = ["名前1","名前2"]
        var items = [TMBarItem]()
        
        for i in titilename {
            let title = TMBarItem(title: i)
            items.append(title)
        }

親コントローラーのコード

①ライブラリTabmanをいれる
②subclassをUIViewControllerで指定した後に、TabmanViewControllerに変える
③子コントローラーの名前をstoryboardに登録
④storyboardでModuleの設定(上の注意点参照)


import UIKit
import Tabman
import Pageboy

class BigCalendarViewController: TabmanViewController {
    private var viewControllers = [UIViewController]()


    override func viewDidLoad() {
        super.viewDidLoad()
        self.dataSource = self

        //tabmanの宣言
        let bar = TMBar.ButtonBar()
        bar.layout.transitionStyle = .snap
        addBar(bar, dataSource: self, at: .top)        
    }

    private func setTabsControllers() {
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let ViewController1 = storyboard.instantiateViewController(withIdentifier: "子コントローラーの名前")
        let ViewController2 = storyboard.instantiateViewController(withIdentifier: "子コントローラーの名前2")
     
        viewControllers = [
            ViewController1,
            ViewController2
        ]
    }
}
extension BigCalendarViewController: PageboyViewControllerDataSource, TMBarDataSource{
    func barItem(for bar: TMBar, at index: Int) -> TMBarItemable {
          
        let titilename = ["名前1","名前2"]
        var items = [TMBarItem]()
        
        for i in titilename {
            let title = TMBarItem(title: i)
            items.append(title)
        }
        return items[index]
    }
  
    func numberOfViewControllers(in pageboyViewController: PageboyViewController) -> Int {
        setTabsControllers()
        return viewControllers.count
    }

    func viewController(for pageboyViewController: PageboyViewController,
                        at index: PageboyViewController.PageIndex) -> UIViewController? {
        return viewControllers[index]
    }

    func defaultPage(for pageboyViewController: PageboyViewController) -> PageboyViewController.Page? {
        return nil
    }

    func barItem(for tabViewController: TabmanViewController, at index: Int) -> TMBarItemable {
        let title = "Page \(index)"
        return TMBarItem(title: title)
    }

    
}

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?