iOS导航项 - 以编程方式切换

时间:2016-01-04 14:05:30

标签: ios swift

我是iOS(swift)编程的新手。我正在创建我的第一个秒表应用程序。我在navigationBar添加了MainStoryBoard,然后在栏上添加了两个导航项,一个在左侧,另一个在右侧。我想在viewDidLoad方法中更改左侧导航项的文本,然后在IBAction中更改。任何人都可以帮助我。

凭借我的.NET编码智能,我为每个人创建了IBOutlets,然后尝试更改其标题属性但失败了。

关于同样的另一个类似问题是如何以编程方式切换导航项目上的图标。

2 个答案:

答案 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

跳这个帮助!