ios - 推送 View Controller 时导航栏上不需要的阴影

标签 ios iphone swift cocoa-touch uinavigationcontroller

小问题: enter image description here

推送 View Controller 时如何去除蓝色圆圈中的阴影?

长问题: 我的应用程序就像 facebook。有一个 NewsFeed View 、Detail post View 和 Page View 。这是我的界面构建器中的内容:interface builder

HomeViewController 是 NewsFeed View ,DetailPostViewController 是详细页面 View ,FirstViewController 是页面 View 。 HomeViewController 嵌入到 UINavigationController 中,后者嵌入到 UITabBarController 中。

当我从 FirstViewController 推送到 DetailPostViewController 时,这是完全正常的。 (注意我不是用segue来push的,而是storyboard ID) enter image description here

但是当我从 DetailPostViewController 推送到 FirstViewController 时,导航栏上有一个奇怪的阴影,就像重叠一样。但我不想那样。 (不使用 segue,而是 Storyboard ID) enter image description here

这是我推送到 FirstViewController

的代码
var vc = self.storyboard?.instantiateViewControllerWithIdentifier("PageViewController") as! FirstViewController
self.navigationController?.pushViewController(vc, animated: true)

如何使从 DetailPostViewControllerFirstViewController 的推送看起来正常?我尝试使用 segue 但它没有用。已经尝试了这么久,但仍然没有运气。谢谢。

最佳答案

我遇到了同样的问题。就我而言,我使用 inputAccessoryView 属性在 UIViewController 的底部显示我的自定义工具栏

事实证明,问题是因为我的 View Controller 在动画开始时是第一响应者。

我认为你应该试试 navigationController?.setToolbarHidden(true, animated: true) 当你执行推送时。或者找到其他方法在推送动画之前隐藏工具栏。

对我来说,这段代码解决了问题,以防有人遇到类似问题

override func viewWillDisappear(animated: Bool) {
    super.viewWillDisappear(animated)
    resignFirstResponder()
}

关于ios - 推送 View Controller 时导航栏上不需要的阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30509143/

相关文章:

ios - 在 xib View 文件之间导航

ios - 在 Swift-iOS 中如何捕获 AWS Cognito 中的用户身份验证错误?

ios - 使用DateFormatter将此字符串解析为Date?

iphone - NSnumberFormatter 在模拟器上工作但不在设备上工作

iphone - 应用程序在dispatch_release信号灯上崩溃了吗?

ios - 无法将类型 'string' 的值分配给类型 'int'

iphone - 取消已释放对象中的 block 请求

swift - 在 UserDefaults 中访问字典时类型 'Any' 没有下标成员

iOS 应用程序在启动时崩溃

ios - 表格 View 中的图像在选择时会更改大小