来自superview的UIView(Container View)内的触发方法

Posted

技术标签:

【中文标题】来自superview的UIView(Container View)内的触发方法【英文标题】:Trigger method inside UIView (Container View) from the superview 【发布时间】:2014-07-25 12:28:56 【问题描述】:

我想触发 UIView 刷新setNeedsDisplay(有效),但还要再次触发 SubView 中的代码,但我无法在任何地方找到它。我试图查看setNeedsDisplay 是否触发了任何视图控制器方法,但没有。

知道如何在容器视图 GUI 元素中实际触发实例化 UIView 的方法吗?

【问题讨论】:

假设子视图是自定义视图,那么你需要暴露一个方法来触发代码。然后,只需找到带有要重绘的视图的子视图并调用该方法(您可以为此使用标签)。 它是 Storyboard 中链接的 UIViewController。您能否进一步解释我如何以一种可以触发该 UIViewController 的方法(真实实例,而不是新实例)的方式绑定它,以便我可以从父视图(我当前所在的那个)修改该子视图中的数据? 你能创建一个 Outlet 到子视图吗? 已经是一个了 :) @property (weak, nonatomic) IBOutlet UIView *productDetailContainer; 这看起来像一个通用的UIView,而不是自定义视图。您要执行的代码是UIView 的一部分吗? 【参考方案1】:

这里有 3 个选项:

1.使用 segue 就像将数据从一个 VC 传递到另一个 VC

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

    // Make sure your segue name in storyboard is the same as this line
    if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
    
        // Get reference to the destination view controller
        YourViewController *vc = [segue destinationViewController];

        // Pass any objects to the view controller here, like...
        [vc setMyObjectHere:object];
    

2。你可以使用 NSNotificationCenter

发布产品按钮操作的方法:

[[NSNotificationCenter defaultCenter] postNotification:@"yourString" object:nil];

然后在Main View(Catalog View Controller)中添加一个监听器:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(someMethod:) name:@"yourString" object:nil];

然后在someMethod的实现中触发动作

3.在Catalog VC中,你可以使用self.childViewControllers.lastObject(假设你只有一个孩子,否则使用objectAtIndex:)来引用它的属性。

ProductDetailController *vc = (ProductDetailController *)self.childViewControllers.lastObject;

【讨论】:

以上是关于来自superview的UIView(Container View)内的触发方法的主要内容,如果未能解决你的问题,请参考以下文章

从其 superView 中删除 UIView 并将其框架扩展到全屏

modalViewController 从 superview 中移除后 UIView 消失

尽管 Superview 的位置,但将 UIView 居中在 MainScreen 的中心

UIView 在其 Superview 内移动

从它自己的 UView 子类中添加 UIView 作为 SuperView 子视图

当superView frameWidth 发生变化时,UIView 不会自动调整大小