JSQ 消息视图控制器:在导航栏上添加“返回”按钮和图像,Swift
Posted
技术标签:
【中文标题】JSQ 消息视图控制器:在导航栏上添加“返回”按钮和图像,Swift【英文标题】:JSQmessageView Controller: Add "Back" Button & Image on Navigation Bar, Swift 【发布时间】:2016-10-25 02:07:11 【问题描述】:我正在使用 JSQmessageViewController 并尝试以编程方式在导航栏上添加“返回”按钮和用户图像。我正在使用以下代码。运行后,没有“返回”按钮或图像。附上模拟器截图。我用普通的 UIViewController 测试了这些代码,它们工作正常。
我可以知道他们为什么不使用 JSQmessageViewController 吗?我应该怎么做才能在导航栏上添加“返回”按钮和图像?非常感谢!
let navigationBar = UINavigationBar(frame: CGRectMake(0, 0, self.view.frame.size.width, 64))
navigationBar.backgroundColor = UIColor.whiteColor()
navigationBar.delegate = self;
let navigationItem = UINavigationItem()
navigationItem.title = strValue
let leftButton = UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.Plain, target: self, action: "back:")
self.navigationItem.leftBarButtonItem = leftButton
let imgButton = UIButton()
imgButton.setImage(image, forState: .Normal)
imgButton.addTarget(self, action: "EditProfile:", forControlEvents: UIControlEvents.TouchDown)
imgButton.frame = CGRectMake(self.view.frame.width - 60, 0, 41, self.view.frame.height)
var rightButton = UIBarButtonItem(customView: imgButton)
self.navigationItem.rightBarButtonItem = rightButton
navigationBar.items = [navigationItem]
self.view.addSubview(navigationBar)
【问题讨论】:
我没有看到所附的屏幕截图。 【参考方案1】:因此,如果您使用导航控制器来显示JSQMessagesViewController
的实例化,那么导航栏实际上应该已经存在。您只需为它提供这些按钮,它们就会在正确的位置。看起来您可能正在以过时的语法做事。这是最新的语法。
创建一个函数来添加您的后退按钮。
func addCancelButtonLeft()
let button = UIBarButtonItem(barButtonSystemItem: .back, target: self, action: #selector(dismissView))
navigationItem.leftBarButtonItem = button
为按钮创建动作。
func dismissView()
dismiss(animated: true, completion: nil)
然后对于您的图像,您实际上是在尝试在该标题视图中放置一个按钮。这很好。
func titleView()
let imgButton = UIButton()
imgButton.setImage(image, forState: .Normal)
imgButton.addTarget(self, action: #selector(EditProfile), forControlEvents: .touchUpInside)
navigationItem.titleView = imgButton
func EditProfile()
navigationController?.present(EditProfileViewController(), animated: true, completion: nil)
如果您有更多问题,请告诉我,我会看看我能做些什么。祝你好运??
【讨论】:
非常感谢您提供详细的代码和帮助。将尝试它们并进一步学习。 :)以上是关于JSQ 消息视图控制器:在导航栏上添加“返回”按钮和图像,Swift的主要内容,如果未能解决你的问题,请参考以下文章