【问题标题】:How to push view controller with transparency mode?如何以透明模式推送视图控制器?
【发布时间】:2017-06-16 14:09:33
【问题描述】:

我正在尝试使用透明模式推送视图控制器。

这是我的代码:

SearchViewController * searchViewController= [self.storyboard instantiateViewControllerWithIdentifier:@"SearchViewController"];
searchViewController.view.backgroundColor = [UIColor colorWithWhite:0 alpha:0.7f];
[self.navigationController pushViewController:searchViewController animated:YES];

我做错了什么并帮助我解决了这个问题。

【问题讨论】:

  • 你必须使用自定义过渡
  • 你能解释一下吗??
  • 你想要透明背景或透明模式
  • @KishoreKumar 你能提供任何描述你的问题的图片吗?
  • @WetSweater 以前的视图控制器有图像,所以当我推送一个新的视图控制器时,我需要显示具有模糊透明度效果的东西

标签: ios uinavigationcontroller pushviewcontroller alpha-transparency


【解决方案1】:

在 iOS 中,背景的默认颜色是黑色。 所以你的导航控制器有黑色背景。

如果您按下控制器,您当前的控制器将被您的新控制器替换。如果新的具有透明颜色,您将看到导航视图。

如果我理解您希望您的第一个控制器仍然可见? 如果是,那么您应该使用:

SearchViewController * searchViewController= [self.storyboard instantiateViewControllerWithIdentifier:@"SearchViewController"];
searchViewController.view.backgroundColor = [UIColor colorWithWhite:0 alpha:0.7f];
[self presentViewController:searchViewController animated:YES completion:nil];

您还可以使用自定义 segue 来获得 cor

【讨论】:

  • 是的,我在工作之前试过这个,但我的情况是来自 push ->view controller 有可能吗?
  • 这取决于:你还想看到你的第一个控制器吗?如果是,您必须使用 presentViewController 或类似 steveen zoleko 的建议:medium.com/@A2HGO/…
【解决方案2】:

您必须将 modalPresentationStyle 设置为 overFullScreen 值

let viewController = SearchViewController(nibName: "SearchViewController", bundle: nil)
viewController.modalPresentationStyle = .overFullScreen
present(viewController, animated: false, completion: nil)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-11
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 2012-07-22
    • 2013-10-11
    • 1970-01-01
    相关资源
    最近更新 更多