【问题标题】:How to load second view ,that can see the first view thourgh it (transparent), in ios 9如何在ios 9中加载第二个视图,可以通过它看到第一个视图(透明)
【发布时间】:2016-01-20 12:38:35
【问题描述】:

这是我的问题,认为我有两种观点。在第一个视图中,有一个 imageview(带有一个图像)和一个按钮。当我按下按钮时,它会加载第二个视图(带有故事板 segue 类型以模态方式存在)。当该视图加载时,我想设置第一个视图,通过第二个视图(应该是透明的)。

我尝试将 secondview 的默认视图 background color 设置为 default,但它给出了黑色。我该怎么做。

【问题讨论】:

  • 那么不要使用单独的第二个视图控制器,而是使用 UIView 并使其透明
  • 是的,我知道这样做,但我想知道有没有办法做到这一点。谢谢

标签: ios objective-c ios-ui-automation


【解决方案1】:

哦,经过几分钟的测试,我解决了您的问题... 我发现 segue 有一个名为 presentation 的属性,如下所示:

您可以将属性更改为 Over Current Context 并且它可以工作

【讨论】:

【解决方案2】:

选择您的 secondviewcontroller 转到属性检查器,然后选择过渡样式以“覆盖垂直”和演示文稿以“在当前上下文中”

并为 presentviewcontroller 编写代码,以在 firstviewcontroller 中模态显示您的第二个视图控制器。

【讨论】:

  • 在哪里为presentviewcontrller 写代码,我遇到了问题@sanjeet
  • 在点击事件的地方
  • @snjeet,我将值从second view 传递到firstview,如果segue presentationover current context,它不会更新我传递的第一个视图的值。但是 segue presentation 是其他的,它工作正常。为什么会这样。
  • 你可以使用委托。
  • 在第二个视图出现之前。如果你实现它,应用程序将在firstView中调用函数(- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender)。你可以设置故事板中的一个segue标识并在这个函数中检查它。获取第二个视图实例并做你想做的事情。 if ([segue.identifier isEqualToString:@"segue"]) { ViewController1 *vc = [segue destinationViewController]; [vc setDelegate:self]; }
【解决方案3】:

您可以将一个视图控制器的视图作为子视图添加到另一个视图控制器。这样,每个视图控制器的代码都在它自己的类中,但它们显示在彼此之上。

MyViewController *viewController = [[MyViewController alloc] init];
[viewControllerA.view setFrame:CGRectMake(x, y, width, height)];
[self.view addSubview:viewController.view];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多