Objective c 在uiscrollview中的多个uiview之间传递数据

Objective c 在uiscrollview中的多个uiview之间传递数据,objective-c,uiview,uiscrollview,Objective C,Uiview,Uiscrollview,我有一个包含uiscrollview的ViewController,我在uiscrollview中创建了两个uiview作为页面,并启用了分页和滚动: _scrollView.frame = CGRectMake(_scrollView.frame.origin.x, _scrollView.frame.origin.y, _scrollView.frame.size.width, _scrollView.frame.size.height); _scrollView.contentSize

我有一个包含uiscrollview的ViewController,我在uiscrollview中创建了两个uiview作为页面,并启用了分页和滚动:

_scrollView.frame = CGRectMake(_scrollView.frame.origin.x, _scrollView.frame.origin.y, _scrollView.frame.size.width, _scrollView.frame.size.height);

_scrollView.contentSize = CGSizeMake(_scrollView.frame.size.width, _scrollView.frame.size.height*PAGES_NUMBER);
_scrollView.delegate = self;
[self.view addSubview:_scrollView];

//PAGE 1
    genderViewController = [[GenderViewController alloc]init];
genderViewController.view.frame = CGRectMake(0.0,
                                             _scrollView.frame.size.height*0,
                                             _scrollView.frame.size.width,
                                             _scrollView.frame.size.height);

[_scrollView addSubview:genderViewController.view];

//PAGE 2
    ageViewController = [[AgeViewController alloc]init];
ageViewController.view.frame =CGRectMake(0.0,
                                         _scrollView.frame.size.height*1,
                                         _scrollView.frame.size.width,
                                         _scrollView.frame.size.height);

[_scrollView addSubview:ageViewController.view];
问题是我想知道如何在这个UI2视图之间传递数据。 例如,我在第一页“genderViewController”中有一个UITextField,当我滚动到第二页时,我想在第二页“ageViewController”中显示该内容,并在第二页“ageViewController”中显示UILabel。 我知道如何在导航视图中的两个不同视图控制器之间传递数据,但在这个阶段我不知道如何做到这一点。 如果你们能帮我,我将不胜感激


谢谢

它与导航视图中的几乎相同。两个视图控制器分别嵌套在第三方(比如主视图控制器)拥有的滚动视图中

实现这一点最干净的方法是,如果带有
UITextField
genderViewController
)的视图控制器调用您定义的主视图控制器的任何委托方法。为此,主机将自己设置为
genderViewController
的委托(您可能需要添加一个委托协议和一个setter)

如果您想像书中那样实现它,那么在
genderViewController
所遵循的协议中声明回调/委托方法


调用此方法后,主视图控制器将调用
ageViewController
的setter。在此设置器中,AGEVIEWCOLLER将设置
UILable

委托方法的值,这些方法可能适用于某些特定操作。但从概念上讲,我认为在这种情况下使用键/值观察更合适

文件可在以下网址找到:


对于您的情况,
ageViewController
可以观察到
genderViewController

中的键路径(比如
textField.text
)的更改,谢谢您的回复。但我认为它不会工作,因为2个视图控制器一直都是创建的。我的意思是,当应用程序运行时,就会创建两个视图控制器。之后,我想在第一页中键入任何文本,并希望在第二页标签中更新此文本,但由于第二页已经创建,因此它不会显示文本。我说得对吗?不,你说得不对。这就行了。试试看。但是,ageViewController文本的设置程序当然必须更新UILable的实际文本。检查标签是否为零,以便保存。