【问题标题】:Retaining View between one view controller and UAModalPanel在一个视图控制器和 UAModalPanel 之间保留视图
【发布时间】:2012-12-31 23:02:42
【问题描述】:

我有两个视图控制器,分别命名为 firstvcsecondvc。我在firstvc 中有一个子视图,它看起来像一个包含文本字段的表单。在firstvc 中有一个按钮可以最大化该子视图。

当我点击它时,我将该子视图添加到 secondvc 并在 UAModalPanel 中呈现 secondvc 视图。如果我关闭那个secondvcfirstvc 应该会出现。我的问题是我无法保留该子视图。这意味着当我关闭secondvc 时,firstvc 子视图正在消失。

您能否建议如何在两个视图控制器之间保留该子视图?

-(IBAction)maximize:(id)sender
{
    UIViewController *newview   = [self.storyboard instantiateViewControllerWithIdentifier:@"second"];


    [newview.view addSubview:subview];

    UAModalPanel  *modalpanelobject = [[UAModalPanel alloc]initWithFrame:self.view.bounds];    

    [modalpanelobject.contentView addSubview:newview.view];

    [self.view addSubview:modalpanelobject];


    [modalpanelobject showFromPoint:self.view.center];

}

【问题讨论】:

  • 您能否发布您用于显示/关闭secondvc 的代码以及将子视图添加到firstvc 的方式?
  • 嘿,我添加了最大化代码,用于关闭模式面板视图,它会自动提供关闭按钮。

标签: iphone ios objective-c ipad view


【解决方案1】:

看, 这个概念是 您可以考虑三种视图。

  1. 子视图(在您的情况下为 ScrollView)

  2. 父视图 1 (GridCell)

  3. 父视图 2('最大化视图)

你正在做的是什么时候

1.您正在最大化子视图

那时您正在将子视图从网格单元格转换为最大化视图。

2.现在在关闭最大化视图时反向。

正确:那个时候你应该把Child View从Maximized View带到Grid Cell。

为此,您无法在网格单元格中找到您的子视图。

最好的问候。

【讨论】:

  • 我有一个单独的滚动视图出口,因此无需从网格单元中获取,我也可以将其添加到最大化视图或网格单元中。我也这样做了,仍然无法正常工作。
  • 嘿,当您关闭最大化视图时,您是否可以重新加载网格?
  • 在重新加载时,我想您正在向网格单元添加滚动视图?
  • 今天再见...我就是这么想的,否则感谢您的认真努力。
  • 我保留了滚动视图插座的属性,所以在重新加载时。我只是将该滚动视图添加到单元格内容视图中,而不从最大化视图中获取。
【解决方案2】:

我是UAModalPanel 背后的开发者。该面板不会干扰未添加到contentView 的视图的视图层次结构,因此即使没有它,这个问题也可能存在。我会将第一个控制器的视图子类化,并在 deallocremoveFromSuperview 方法中放置一个断点,以查看删除视图的内容、时间和原因。

【讨论】:

  • 事情是没有模态面板,如果我提供 secondvc 它工作正常。如果我给模态面板它不保留。
  • 我想告诉你的一件事是我保留了手动关闭按钮来隐藏模式面板,当我返回视图时不会重新加载,但是当我再次单击最大化按钮时,它会与子视图一起出现。我认为模态面板在我隐藏它时不会释放该子视图。与它有什么关系吗?
  • - “事情是没有模态面板,如果我提供 secondvc 它工作正常。如果我给模态面板它不保留。” - 没错,为什么要保留它?如果您有兴趣保留它,您的调用控制器应该保留它。如果我是你,我不会在控制器之间传递视图,而是重新创建或复制它。
  • 如果我重新创建视图,我必须维护这么多的出口,视图中的代表。这就是为什么我要以这种方式尝试。我怀疑如果我在编辑任何视图时复制该视图字段,数据是否会被复制?你能建议我怎么做吗?否则我想如果我释放模态面板对象,它会重新加载。但是我在 iOS5 中这样做,所以一旦我隐藏了那个模态面板如何释放它?
  • 嘿,我终于解决了!!!!我所做的是我有一个视图,它有子视图作为滚动视图。这整个视图旨在添加到单元格内容视图中。所以当我最大化它时,我将滚动视图提供给最大化视图。当我隐藏模型面板时,我只是将那个滚动视图出口添加为 [view addSubView:scrollview] 就是这样。虽然该视图如何添加到单元格内容视图中。所以即使没有重新加载网格视图,它也可以工作......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-29
  • 2014-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-24
  • 2014-02-17
相关资源
最近更新 更多