快速的垂直标签栏导航

时间:2019-04-26 01:31:38

标签: ios swift uitabbarcontroller

有没有一种方法可以垂直重新放置UIKit标签栏?如 gmail app navigation

这个问题已经问了好几次了。我发现的所有解决方案似乎都不适合我。我正在Swift中寻找解决方案,没有第三方库。

1 个答案:

答案 0 :(得分:-1)

就像@rmaddy所说的一样,您将需要创建一个自定义标签并将其放置在如下所示的视图中。

仅供参考,您可以使用按钮轻松构建自定义标签栏。

enter image description here

单击后,只需使用以下扩展名将新控制器添加为子视图。

extension UIViewController {

    func add(parentViewController: UIView, childViewController: UIViewController) {
        // Add Child View Controller
        addChild(childViewController)

        // Add Child View as Subview
        parentViewController.addSubview(childViewController.view)

        // Configure Child View
        childViewController.view.frame = parentViewController.bounds

        // Notify Child View Controller
        childViewController.didMove(toParent: self)
    }

}

因此在主视图控制器中,它应该看起来像这样。

class MainController: UIViewController {

    // Outlets
    @IBOutlet weak var mainView: UIView!

    // Lazy loaded controller
    private lazy var tab1Controller: Tab1Controller = {
        // Instantiate View Controller
        let tab1Controller = UIStoryboard(name: "Tab1Controller", bundle: nil).instantiateViewController(withIdentifier: "Tab1") as! Tab1Controller

        return tab1Controller
    }()

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }

    // MARK: - Tab Bar

    @IBAction func Tab1TouchUpInside(_ sender: Any) {
        // Navigate to child view
        self.add(parentViewController: self.mainView, childViewController: self.tab1Controller)
    }

}

希望有帮助!