在我的应用程序中,我创建了一个子视图控制器,我已使用故事板ID进行实例化。然后我以编程方式将此子视图添加到UIScrollView,这就是为什么我不能简单地在故事板中创建容器视图。继承人我还需要做什么:我需要将数据传递给子VC。我知道如何在使用segue到VC时传递数据,但在这种情况下我该如何执行此操作?
答案 0 :(得分:1)
您要将子项添加到的控制器具有childViewControllers属性,该属性包含控制器具有的所有子项。如果您只有一个孩子,那么您可以使用
从父母那里引用它SomeClass *child = self.childViewControllers[0];
child.someProperty = self.propertyIWantToPass;
答案 1 :(得分:0)
考虑你要从ViewController1向ViewController2,ViewController3发送字符串数据。
在ViewController2和ViewController3中创建字符串变量的属性。
@property(nonatomic,strong) NSString *str;
同时推送ViewController2和ViewController3:
ViewController2 *viewController = [ViewController2 alloc]init];
viewController2.str = @"Some text";
[self.navigationController pushViewController:viewController2 animated:YES];
您可以从ViewController2中的ViewController1发送数据。
答案 2 :(得分:0)
如何为要传递给孩子的数据建立最终目的地。
@interface ChildVC : UIViewController {
@property (nonatomic) id myPrivateData;
}
- (id)initWithData:(id)data;
@end
然后在实例化时使用-initWithData:
传入数据。
ParentVC *vc = [[ParentVC alloc] init];
vc.dataIWantToPass = ...;
ChildVC *child = [[ChildVC alloc] initWithData:vc.dataIWantToPass];
答案 3 :(得分:0)
自从我做完iOS以来已经有一段时间了,
在查看Apple的文档后,我非常确定您无法将ViewController添加到UIScrollView。你需要给它一些继承UIView的东西。您可以将UIView子类化,并在赋予UIScrollView之前为其提供属性或方法以传递数据。
UIScrollView继承自UIView,因此它具有属性UIScrollView.subviews,如果引用不再可用,它可用于访问传入的VIew。
如果您只是操纵UIViewController或其中一个子类,那么您可以通过其属性UIViewController.View
访问它管理的子视图