导航栏中未显示的按钮项目嵌入TabBarController中

时间:2016-03-31 14:14:14

标签: ios iphone swift navigationbar

我正在开发一个应用程序,其中viewController嵌入在navigationBar中,此navigationBar嵌入在TabBarViewController中。

在我的应用程序中,我有2个不同的标签(暂时),一个标签是"活动视图"。这是一个带有tableView的viewController,其中列出了活动。每个单元格都会显示相同的视图控制器,显示触摸时的详细活动。

我的问题是没有用按钮显示navigationItem。

我正在尝试使用Bar button item not shown in navigationBar的解决方案,因为我的问题非常相似,但它不起作用。

故事板和应用运行的一些截图: storyboard App running without buttons

我尝试以编程方式添加按钮但没有结果:

var logoutButton: UIBarButtonItem!
var filterButton: UIBarButtonItem!


//MARK: - Lyfe cycle
override func viewDidLoad() {
super.viewDidLoad()

let logoutImage = UIImage(named: "logout-24")
let filterImage = UIImage(named: "filterOutline-24")

logoutButton = UIBarButtonItem(image: logoutImage, style: .Plain, target: self, action: "logoutAction:")
filterButton = UIBarButtonItem(image: filterImage, style: .Plain, target: self, action: "filterAction:")
navigationItem.rightBarButtonItems = [filterButton, logoutButton]

3 个答案:

答案 0 :(得分:0)

检查你的形象。我发现您的代码没有任何问题。或者您可以尝试添加如下所示的标题

logoutButton = UIBarButtonItem(title: "Log out", style: .Plain, target: self, action:Selector("logoutAction:"))
filterButton = UIBarButtonItem(title: "Filter", style: .Plain, target: self, action: Selector("filterAction:"))

如果按钮栏显示。我确定问题是你的形象。

答案 1 :(得分:0)

我也遇到了类似的问题,后来我发现在标签栏控制器本身设置导航栏,无需在视图控制器中进行操作

let profilePutton = UIButton(type: .custom)
profilePutton.setTitle("Profile", for: .normal)
profilePutton.frame = CGRect(x: 0.0, y: 0.0, width: 30.0, height: 30.0)
profilePutton.addTarget(self, action: #selector(openProfilePage), for: .touchUpInside)
navigationItem.rightBarButtonItem = UIBarButtonItem(customView: profilePutton)

答案 2 :(得分:0)

对于Tabar应用程序,我们应该这样添加

 let logoutButton = UIBarButtonItem(image: UIImage(named: "ic_logout"), style: .plain, target: self, action:#selector(logoutButtonTapped))    
 self.tabBarController?.navigationItem.leftBarButtonItem = logoutButton

 let nightModeButton = UIBarButtonItem(image: UIImage(named: "ic_night_mode_off"), style: .plain, target: self, action:#selector(nightModeButoonTapped))
 self.tabBarController?.navigationItem.rightBarButtonItem  = nightModeButton