条形按钮项目从导航控制器中消失

时间:2015-09-21 06:12:50

标签: ios iphone swift uinavigationcontroller uibarbuttonitem

我正在开发的应用程序有一个奇怪的问题。条形按钮项目随机消失。

我有一个带有一个按钮(作为图像)的导航控制器,可以通过push segue将用户带到菜单表视图控制器。

菜单表视图控制器有3行,即菜单选项。

每个菜单选项都会通过push segue将用户带到另一个View Controller。每个视图控制器都有一个使用默认按钮显示的后退按钮。

这是一个非常简单直接的设置,没有任何代码。

我注意到很多场合所有的条形按钮项目都消失了。没有后退按钮,没有菜单按钮等。虽然我仍然可以点击该区域,按钮仍然有效 - 只是不可见。

我没有通过隐藏按钮的代码做任何事情。

我已经注意到很多次,如果我将我的应用程序留在前台并且手机进入睡眠状态,那么当我回来时,按钮就消失了。但并非总是如此。

然而,这不是按钮消失的唯一时间。我实际上看到它们在使用菜单系统时消失了。但是再一次没有我能看到的导致这种情况的代码。

我目前使用的是iOS9,但它与iOS8相同。

知道可能是什么问题吗?

3 个答案:

答案 0 :(得分:1)

Opps ......事实证明我应该为消失的条形按钮项目负责。

我正在加载一个SKStoreProductViewController(呈现App Store视图控制器),我想让颜色与我的应用匹配,所以在网上搜索后我找到了一个解决方案:

UINavigationBar.appearance().tintColor = myColor

它有效。

但这并不会影响我的应用栏按钮项。直到我打电话给MFMailComposeViewController(编写电子邮件)才发现问题。

关闭MFMailComposeViewController时,我的应用程序Bar Button Items消失了。

嗯,他们没有消失,他们变成与导航栏相同的颜色,他们仍然在那里,只是看不到它们。

解决方案是设置SKStoreProductViewController的色调颜色,如下所示:

    myStoreProductViewController.view.tintColor = myColor

答案 1 :(得分:0)

我希望这会帮助你。在你的视图didload方法中使用这段代码。

// 1
var rightAddBarButtonItem:UIBarButtonItem = UIBarButtonItem(title: "Add", style: UIBarButtonItemStyle.Plain, target: self, action: "addTapped:")
// 2
var rightSearchBarButtonItem:UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Search, target: self, action: "searchTapped:")
// 3
self.navigationItem.setRightBarButtonItems([rightAddBarButtonItem,rightSearchBarButtonItem], animated: true)

答案 2 :(得分:0)

以下是您可以查看的内容, 如果您在故事板中插入了导航禁令,请检查是否启用了用户交互,是否隐藏了导航栏。

enter image description here

您可以检查的第二件事是,如果您的导航栏在条形按钮上有一些视图,正如您所说,在按下按钮空间时会调用这些方法。 在构建应用程序时使用调试视图层次结构。

enter image description here