我有一个父视图控制器,有两个嵌入式控制器,我使用Storyboard链接.我试图通过使用委托允许ViewControllers之间的通信.
问题是,我被困在尝试分配委托,因为我没有ChildViewController在父母的参考.基本上,我正在寻找ParentViewController.m插入代码的地方
ChildViewController.delegate = self;
Run Code Online (Sandbox Code Playgroud)
我尝试IBOutlets为每个ChildViewControllers 创建,但我似乎无法在Storyboard中正确分配它们.
rde*_*mar 11
有几种方法可以做到这一点.在代码中,您可以使用self.childViewControllers获取对子视图控制器的引用,该引用为您提供了所有子项的数组.首选方法,可能是使用prepareForSegue:sender:.这将在实例化父控制器时调用,并且您可以使用segue.destinationViewController获取对子项的引用.给每个嵌入segues标识符,以便您可以知道哪个segue正在调用prepareForSegue.有点像这样:
@interface ViewController ()
@property (strong,nonatomic) UIViewController *topController;
@property (strong,nonatomic) UIViewController *bottomController;
@end
@implementation ViewController
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"topEmbed"]) {
self.topController = segue.destinationViewController;
}else if ([segue.identifier isEqualToString:@"bottomEmbed"]){
self.bottomController = segue.destinationViewController;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3550 次 |
| 最近记录: |