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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS如何获取对带有segue的storyboard容器中嵌入的视图控制器的引用?相关的知识,希望对你有一定的参考价值。

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

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

这是我正在使用的segue

答案

您必须在主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];

    }
}
另一答案

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

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

以上是关于iOS如何获取对带有segue的storyboard容器中嵌入的视图控制器的引用?的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 带有动画的程序化模态segue(例如翻转)

如何在 segue 中从 CoreData 获取结果

iOS 7 - PopOver 中的 UITableViewController 可以找到带有错误的 segue Receiver(UITableViewController) has no segu

在 Push for Segue [IOS] 中获取 NSDictionary 选定行

iOS 自定义 Segue 不工作

获取 Segue 之间的变量