遇到一个非常奇怪的问题,但找不到解决方法。我有一个基于标签栏 Controller 的应用程序,带有 3 个 View Controller (2 个 TableView Controller 和一个常规 vc),它们是个人资料、订单、人员。当我登录时,我会进入个人资料,并且导航栏中的按钮会正确显示。当我转到“人员”并返回时,按钮就会消失并且不再显示。反之亦然(从人员到个人资料)。
这是另一个奇怪的部分:如果我从个人资料转到订单,然后再返回,它将显示所有按钮。另外,如果我从个人资料转到订单再到人员,人们会正常显示。
结构如下:
在所有viewDidLoad和viewWillAppear中,我添加以下代码:
let editButton = UIButton()
editButton.frame = CGRectMake(0, 0, 60, 35)
editButton.setTitle("Edit Profile ", forState: .Normal)
editButton.setTitleColor(UIColor.blueColor(), forState: .Normal)
editButton.addTarget(self, action: Selector("editButtonPressed"), forControlEvents: .TouchUpInside)
let leftBarButton = UIBarButtonItem()
leftBarButton.customView = editButton
self.tabBarController?.navigationItem.leftBarButtonItem = leftBarButton
在 viewWillDisappear 中,我添加:
self.tabBarController?.navigationItem.leftBarButtonItem = nil
self.tabBarController?.navigationItem.rightBarButtonItem = nil
除 Orders TableView Controller 之外的所有 TableView Controller 都没有上述任何代码。到底是怎么回事?如果需要的话,我很乐意提供更多信息,但据我所知,这就是全部内容了。
最佳答案
你可以试试这个:
1.显示:
self.navigationItem.rightBarButtonItem?.customView?.alpha = 1.0
2.隐藏:
self.navigationItem.rightBarButtonItem?.customView?.alpha = 0.0
关于ios - Swift - 导航按钮显示和隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35259151/