【问题标题】:How to overlap navigation bar by adding view in swift?如何通过在swift中添加视图来重叠导航栏?
【发布时间】:2018-02-05 03:00:11
【问题描述】:

我想通过向视图控制器添加新视图来制作自定义侧边栏,侧边栏将采用黄色背景。我希望我的侧栏也与视图控制器中的导航栏/项目(绿色背景颜色)重叠。但是导航栏/项目似乎无法与我的侧栏视图重叠,它似乎只与主视图重叠。

我试图在stackoverflow中找到答案,我找到了这个Overlap navigation bar on ios 6 with other view,但是答案在Objective-C上,我看不懂Objective-C :(

我应该怎么做才能重叠导航栏/项目?这是我的视图控制器的屏幕截图

我像这样嵌入导航控制器

【问题讨论】:

    标签: ios swift navigationbar


    【解决方案1】:

    滑盖式容器或抽屉式容器有很多实现方式。

    你需要做的是CONTAIN导航控制器在另一个视图控制器中。

    堆栈看起来像这样。

    • 主视图控制器
      • UINavigationController
        • RootViewController
      • 菜单

    在这里看到这个:

    Swift version of MMDrawerController

    【讨论】:

    • 感谢您的回答,但我如何在另一个视图控制器中包含导航控制器?你的意思是在视图控制器中嵌入导航控制器?不好意思,我是iOS开发初学者
    • 通常通过情节提要,您使用“嵌入 Segue”或以编程方式创建它。它就像一个主细节视图,除了主是菜单,细节是导航控制器。
    • 如果这不是为了某种任务或其他,你最好使用像上面提到的那样的可可豆荚,因为它不是微不足道的,而且可能更可靠。测试库
    • 哦,好吧,我只知道有一个叫MMDrawerController的pod可以制作这样的侧边栏。非常感谢您提供的信息
    • 是的,几年前我成功地使用了它,它在当时很好。这是一个快速版本。享受
    【解决方案2】:

    您可以通过更改您的 UIViewController 层次结构来做到这一点。为此,您需要三个视图控制器。首先将包含所有内容,我们称之为MasterViewController;第二——带有导航栏的主要内容;第三个抽屉。

    MasterViewController 中实例化子视图控制器并将它们添加到viewDidLoad() 中的视图控制器层次结构中。

    final class MasterViewController: UIViewController {
        override func viewDidLoad() {
    
            let drawerViewController = DrawerViewController()
            let mainViewController = MainContentViewController()
            let navigationController = UINavigationController(rootViewController: mainViewController)
    
            addChildViewController(drawerViewController)
            addChildViewController(navigationController)
    
            view.addSubview(navigationController.view)
            view.addSubview(drawerViewController.view)
        }
    }
    

    现在您拥有navigationController.view,您可以在view 内的任何位置放置或设置动画。

    【讨论】:

    • 非常感谢您提供的非常有用的信息,但老实说我是初学者,如果我没有看到故事板,我很难理解:(。你有简单的示例吗?这个项目?很抱歉这么说。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    • 2019-08-03
    相关资源
    最近更新 更多