我是iOS(swift)编程的新手。我正在创建我的第一个秒表应用程序。我在navigationBar
添加了MainStoryBoard
,然后在栏上添加了两个导航项,一个在左侧,另一个在右侧。我想在viewDidLoad
方法中更改左侧导航项的文本,然后在IBAction
中更改。任何人都可以帮助我。
凭借我的.NET编码智能,我为每个人创建了IBOutlets
,然后尝试更改其标题属性但失败了。
关于同样的另一个类似问题是如何以编程方式切换导航项目上的图标。
答案 0 :(得分:2)
对于带有自定义按钮图片的UIBarButtonItem
:
let btnName = UIButton()
btnName.setImage(UIImage(named: "imagename"), forState: .Normal)
btnName.frame = CGRectMake(0, 0, 30, 30)
btnName.addTarget(self, action: Selector("action"), forControlEvents: .TouchUpInside)
设置右/左栏按钮项目:
let rightBarButton = UIBarButtonItem()
rightBarButton.customView = btnName
self.navigationItem.rightBarButtonItem = rightBarButton
对于系统UIBarButtonItem
:
let camera = UIBarButtonItem(barButtonSystemItem: .Camera, target: self, action: Selector("btnOpenCamera"))
self.navigationItem.rightBarButtonItem = camera
答案 1 :(得分:2)
您不应在UINavigationBar
上创建StoryBoard
。你应该把它嵌入UINavigationController
。在viewDidLoad
中,您可以通过编程方式添加NavigationItem
。
仅使用文字添加NavigationBarItem
:
self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "left", style: .Done, target: self, action: "leftTap")
使用图片:
self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "backIcon@3x"), style: .Done, target: self, action: "rightTap")
在Action
中,您可以更改文字或图片:
self.navigationItem.leftBarButtonItem?.title = "left change"
self.navigationItem.rightBarButtonItem?.image = UIImage(named: "calendar-icons@3x")
上面的标题和图片就是演示。您可以参考我的演示代码:Demo Change NavigationItem Programmatically
跳这个帮助!