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

时间:2014-07-25 12:28:57

标签: ios uiview

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

知道如何在Container View GUI元素中实际触发实例化UIView的方法吗?

1 个答案:

答案 0 :(得分: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];

然后在主视图(目录视图控制器)中添加一个侦听器:

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

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

第3。在目录VC中,您可以使用self.childViewControllers.lastObject(假设您只有一个子节点,否则使用objectAtIndex :)来引用其属性。

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