Swift:导航栏上的徽标以及后退按钮

时间:2016-07-20 12:21:34

标签: ios swift uinavigationbar back-button

我希望我的应用程序的徽标后跟导航栏上的应用程序名称。除此之外,应该有一个后退按钮。

下面是截图:

Screenshot for question

我已尝试过以下代码。

 self.navigationItem.setHidesBackButton(false, animated:true);

 let imgLogo : UIImage = UIImage(named:"Logo")!
 let imgViewLogo : UIImageView = UIImageView(image: imgLogo)
 imgViewLogo.frame = CGRectMake(0, 0, 40, 40)

 let leftItem:UIBarButtonItem = UIBarButtonItem(customView: imgViewLogo)
 self.navigationItem.leftBarButtonItem = leftItem
 // App Name set on storyboard at design-time

这会将徽标放在下面显示的后退按钮的顶部。

Screenshot 2

如何实现这一目标?

3 个答案:

答案 0 :(得分:2)

您可以使用navigationItem.titleView的自定义视图。使用您的徽标和UIViewController标题的标签创建UIView并设置
navigationItem.titleView = YOUR_CUSTOM_VIEW;

答案 1 :(得分:1)

而不是使用let imgLogo : UIImage = UIImage(named:"Logo")! let imgViewLogo : UIImageView = UIImageView(image: imgLogo) imgViewLogo.frame = CGRectMake(0, 0, 40, 40) let leftItem:UIBarButtonItem = UIBarButtonItem(customView: imgViewLogo) self.navigationItem.leftBarButtonItems?.append(leftItem) 使用:

removeClass()

它将与系统后退按钮一起添加 enter image description here

答案 2 :(得分:0)

你可以找到很多关于它的例子。

在这个例子中,如果你需要的话,我还添加了一个空间来集中你的徽标:

let leftButton: UIBarButtonItem = UIBarButtonItem(image: UIImage(named: "Logo")!, style: UIBarButtonItemStyle.Plain, target: self, action:#selector(MyViewController.leftButtonPress(_:)))
let negativeSpacer = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target: nil, action: nil)
negativeSpacer.width = -5.0 // Left inset to better center your logo
navigationItem.leftBarButtonItems = [negativeSpacer,leftButton]

func leftButtonPress(sender: AnyObject?) {
    // do whatever you want when you press back button
}
相关问题