iOS如何获取对带有segue的storyboard容器中嵌入的视图控制器的引用?

问题描述 投票:4回答:2

我有一个故事板和一个带有容器视图的视图控制器。在故事板中,我使用“嵌入”segue定义了从容器到另一个视图控制器的连接。如何从父视图控制器中获取对嵌入式视图控制器的引用?

我已经创建了对容器的引用,但是看到它只是一个UIView

这是我正在使用的segue

ios objective-c uiviewcontroller embed uistoryboard
2个回答
8
投票

您必须在主ViewController中实现prepareForSegue并在StoryBoard中指定标识符。

- (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];

    }
}

0
投票

以下是使用反射的替代方法,通过实现:

-(void)addChildViewController:(UIViewController *)childController

EG

-(void)addChildViewController:(UIViewController *)childController {

    [super addChildViewController:childController];

    for (UIViewController *childViewController in [self childViewControllers]) {
        if ([childViewController isKindOfClass:[SomeViewController class]]) {
            _controller = (SomeViewController *)childController;            
            break;
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.