带有JSQMessages的导航栏?

时间:2016-09-19 06:38:24

标签: ios swift uinavigationcontroller uinavigationbar jsqmessagesviewcontroller

我需要在我的JSQMessagesVC顶部设置一个条形或一些空间以允许用户退出它,但在故事板中添加元素不起作用,因为我猜chatVC覆盖了所有内容在故事板?它还让我相信,连接到我的ChatVC的导航控制器不会做任何事情,因为它将被代码覆盖。

我有大约4页,但我没有在它们之间使用导航控制器。我宁愿只留空间,把自己的按钮放在顶部。这也将解决消息一直到状态栏的问题。

如何在JSQVC顶部获得空间以允许用户退出?如果我必须使用导航控制器,是否可以只使用导航进行单个视图? enter image description here

2 个答案:

答案 0 :(得分:0)

首先添加一个navigationController,然后将JSQMessagesView推送到那个。

答案 1 :(得分:0)

我之前遇到了同样的问题,为了解决这个问题,我以编程方式创建了一个导航栏。为此,您可以创建一个函数并从viewDidLoadviewDidAppear调用该函数。

func addNavBar() {
        let navigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: view.frame.size.width, height:54)) // Offset by 20 pixels vertically to take the status bar into account

        navigationBar.barTintColor = UIColor.black
        navigationBar.tintColor = UIColor.white

        navigationBar.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.white]

        // Create a navigation item with a title
        let navigationItem = UINavigationItem()
        navigationItem.title = "NavBarAppears!"

        // Create left and right button for navigation item
        let leftButton =  UIBarButtonItem(title: "Back", style:   .plain, target: self, action: #selector(btn_clicked(_:)))

        let rightButton = UIBarButtonItem(title: "Right", style: .plain, target: self, action: nil)

        // Create two buttons for the navigation item
        navigationItem.leftBarButtonItem = leftButton
        navigationItem.rightBarButtonItem = rightButton

        // Assign the navigation item to the navigation bar
        navigationBar.items = [navigationItem]

        // Make the navigation bar a subview of the current view controller
        self.view.addSubview(navigationBar)
    }

    func btn_clicked(_ sender: UIBarButtonItem) {
        // Do something
        performSegue(withIdentifier: "segueBackToHomeVC", sender: self)
    }