iOS顶部导航栏

时间:2019-10-05 20:52:54

标签: ios swift xcode

哪种方法是在Instagram上创建像这样的顶部导航栏的最佳方法?

我有一个带有5个视图的Tab Bar控制器,但是我不明白如何在其中一个视图中创建另一个导航栏。我应该创建两个标签,并将每个标签与另一个视图连接起来,还是有更好的方法来实现此目的?

enter image description here

1 个答案:

答案 0 :(得分:1)

您的方法很好,很高兴看到一些屏幕截图或代码以完全理解它。

如果要将导航栏放在这些选项卡视图中,则需要放置一个连接到导航控制器的容器视图。

我创建了一个simple project,向您展示了我是如何实现的。

使用滚动视图包含另外两个嵌入了某些导航控制器的视图容器:

视图容器允许您嵌入任何类型的视图/控制器:

Apple docs has a nice reference of how to do this,您只需要将ViewController更改为NavigationController。

如果您不介意使用第三方代码,那么还有很多选择可供您选择:

PolioPager

import PolioPager

class ViewController: MainContainerViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func tabItems()-> [TabItem] {
        return [TabItem(title: "One"),TabItem(title: "Two")]
    }

    override func viewControllers()-> [UIViewController]
    {
        let storyboard = UIStoryboard(name: "Main", bundle: nil)

        let viewController1 = storyboard.instantiateViewController(withIdentifier: "cont1")
        let viewController2 = storyboard.instantiateViewController(withIdentifier: "cont2")

        return [viewController1, viewController2]
    }
}

在上面的示例中,您可以使用PolioPager实例化2个不同的导航视图控制器,例如,由情节提要标识符cont1 cont2标识。

其他旅行聚会库:

https://github.com/XuYanci/GLViewPagerController

https://github.com/rechsteiner/Parchment