swift 中的垂直标签栏导航

Vertical tab bar navigation in swift

有没有办法在垂直方向上重新定位 UIKit 标签栏?像 gmail app navigation

这个问题已经被问过很多次了。 None 我找到的解决方案似乎对我有用。我正在 Swift 中寻找从头开始的解决方案,没有第三方库。

就像@rmaddy 评论的那样,您需要创建一个自定义选项卡并将其放置在如下所示的视图中。

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

点击后,您只需使用下面的扩展程序将新控制器添加为子视图即可。

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)
    }

}

希望对您有所帮助!