【问题标题】:push to second view controller with clear background in swift快速推送到具有清晰背景的第二个视图控制器
【发布时间】:2015-07-02 13:14:35
【问题描述】:

我想使用导航控制器显示一个具有清晰背景颜色的视图控制器 - swift。

let nextViewController = SettingViewController(nibName: "SettingViewController", bundle: nil)
    nextViewController.view.backgroundColor = UIColor.clearColor()
    nextViewController.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext
    self.navigationController?.pushViewController(nextViewController, animated: true)

但它不起作用。 当我呈现第二个视图但不使用导航控制器时,上面的代码正在工作。

【问题讨论】:

  • 为什么不在 awakeFromNib 的 nextViewController 中设置背景颜色?
  • 如果你想要模态视图,你应该呈现 - 不要推送
  • 由于 iOS-8 的更新,只有 bg clear color 不起作用。并且请向我建议任何推送(导航控制器)的属性或方法。我不想用礼物。

标签: iphone swift ios8


【解决方案1】:

我尝试了很多方法,但没有得到任何可行的解决方案。导航控制器的实际问题是当前视图动画从左到右开始随着 nextViewController 移动,并且在 iOS-8 中没有清除视图控制器背景的选项(实际上你可以但另一个白色对象出现在这个位置)。所以我们不能在这种情况下使用导航视图。

当前视图控制器的问题:如果您的应用程序在导航控制器上运行,我们不能使用当前视图控制器,因为在其上显示任何视图控制器后您无法使用推送其他视图控制器,因此此解决方案在这种情况下没有用处。

解决方案: 最后,我在当前控制器上添加了带有动画的 nextViewController 视图。但条件是全局获取 nextViewController 引用,否则 nextViewController 按钮操作和其他一些操作将不起作用,应用程序将崩溃。 因此,只需获取 nextViewController 的全局引用,并根据需要在 presentViewController 上添加带有动画的 nextViewController 视图,并在您想要删除时删除(现在您可以根据需要放置视图不透明度和颜色)。 这是我想要的完美工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    相关资源
    最近更新 更多