Ios 按下视图控制器时导航栏上不需要的阴影

Ios 按下视图控制器时导航栏上不需要的阴影,ios,iphone,swift,cocoa-touch,uinavigationcontroller,Ios,Iphone,Swift,Cocoa Touch,Uinavigationcontroller,简短问题: 按下视图控制器时,如何移除蓝色圆圈中的阴影 长问题: 我的应用程序就像facebook。有一个NewsFeed视图、DetailPost视图和Page视图。以下是“我的界面生成器”中的内容: HomeViewController是新闻提要视图,DetailPostViewController是详细页面视图,FirstViewController是页面视图。HomeViewController嵌入到UINavigationController中,该控制器嵌入到UIDABBARCONT

简短问题:

按下视图控制器时,如何移除蓝色圆圈中的阴影

长问题: 我的应用程序就像facebook。有一个NewsFeed视图、DetailPost视图和Page视图。以下是“我的界面生成器”中的内容:

HomeViewController
是新闻提要视图,
DetailPostViewController
是详细页面视图,
FirstViewController
是页面视图。
HomeViewController
嵌入到
UINavigationController
中,该控制器嵌入到
UIDABBARCONTROLLER

当我从
FirstViewController
推到
DetailPostViewController
时,这是完全正常的。(请注意,我不使用segue推送,而是使用情节提要ID)

但是当我从
DetailPostViewController
推到
FirstViewController
时,导航栏上有一个奇怪的阴影,就像重叠一样。但我不想那样。(不使用segue,但使用情节提要ID)

这是我的代码推送到
FirstViewController

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

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

使用导航控制器尝试使用此按钮推送

let vc = TwoViewController(nibName: "TwoViewController", bundle: nil)
     navigationController?.pushViewController(vc, animated: true)

查看本教程

我认为您在这两种情况下都得到了阴影,如果要使用内置的过渡,您将无能为力。iOS正在将其添加到视图层次结构中,作为转换的一部分


您可以尝试使用自定义转换:。在这种情况下,我认为您可以完全控制转换中涉及的视图。但要消除这种阴影需要做很多工作。

我也有同样的问题。在我的例子中,我使用
inputAccessoryView
属性在UIViewController的底部显示我的自定义工具栏

事实证明,问题是因为我的视图控制器是动画开始时的第一个响应者

我想你应该试试
navigationController?.setToolbarHidden(true,动画:true)
当您执行推送时。或者在推送动画之前找到另一种隐藏工具栏的方法

对我来说,这段代码修复了这个问题,以防有人有类似的问题

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

谢谢但我使用的是故事板而不是xib。这和我的代码有什么区别?谢谢。但我只在一个实例上有阴影(从一个帖子到另一个页面),但从一个页面到另一个页面、从一个新闻提要到另一个页面都是正常的。你认为我的界面生成器中有任何令人头痛的错误吗?在你发布的所有图像中都有一个阴影。。。再往下看一页。我认为只是顶部的对比度不同,所以不太明显。检查任何iOS应用程序-你会看到阴影。这不是IB的问题,只是UIKit的工作原理。非常感谢您的回复。我对视图控制器的阴影很满意(第二张图中的正常空白阴影)。但我不希望导航栏上出现阴影(如图1和图3中的蓝色圆圈所示)。当点击搜索结果时,我在Quora应用程序中看到了同样的错误。但基本上所有的iOS应用程序都没有这个bug,包括Facebook、Twitter、堆栈溢出等等。啊,对不起,没有正确阅读你的问题。不知道该建议什么。我现在想知道,如果在推问题控制器之前重置导航堆栈,是否仍然会发生这种情况?也许那个控制器已经在堆栈上了,或者类似的奇怪的东西?除此之外,我只能建议在示例项目中尝试隔离问题,如果问题仍然存在,则提交错误。:(谢谢你的建议。我将尝试重置它,看看它是否有效。无论如何,谢谢!我也希望在我的回答中得到它