推动视图控制器时导航栏上不需要的阴影

时间:2015-05-28 14:14:16

标签: ios iphone swift cocoa-touch uinavigationcontroller

简短问题: enter image description here

如何在推动视图控制器时删除蓝色圆圈中的阴影?

长问题: 我的应用程序就像facebook。有一个NewsFeed视图,详细信息发布视图和页面视图。以下是我的界面构建器中的内容:interface builder

HomeViewController是NewsFeed视图,DetailPostViewController是详细信息页面视图,FirstViewController是页面视图。 HomeViewController嵌入到UINavigationController中,UITabBarController嵌入FirstViewController

DetailPostViewController推送到DetailPostViewController是完全正常的。 (注意我不使用segue来推送,但是故事板ID) enter image description here

但是当我从FirstViewController推送到FirstViewController时,导航栏上会出现一个奇怪的阴影,就像重叠一样。但我不希望这样。 (不使用segue,但是故事板ID) enter image description here

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

DetailPostViewController

如何从FirstViewController推送到 stuckey <- read.csv2("C:/kalle/R/stuckey.csv", header=TRUE, sep=";", dec=",") 看起来正常?我尝试使用segue但它没有用。尝试了这么久但仍然没有运气。感谢。

3 个答案:

答案 0 :(得分:2)

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

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

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

对我来说,这个代码修复了问题,万一有人有类似的问题

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

答案 1 :(得分:0)

我认为你在两个实例中都得到了影子,如果你打算使用内置的过渡,你无能为力。 iOS正在将其添加到视图层次结构中,作为过渡的一部分。

您可以尝试使用自定义转换:http://www.objc.io/issue-12/custom-container-view-controller-transitions.html。在这种情况下,我认为您可以完全控制转换中涉及的视图。但要消除这种阴影会有很多工作。

答案 2 :(得分:-1)

尝试使用此功能推送使用导航控制器

@Override
    public boolean onTouch(View v, MotionEvent event) {
        return true;
    }

查看本教程NavigationController

相关问题