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 7 - PopOver 中的 UITableViewController 可以找到带有错误的 segue Receiver(UITableViewController) has no segu