2012-02-28 50 views
0

我需要从我的父视图控制器到其子视图获取NSString。从父ViewController获取字符串?

所以我有 'ParentView' ----> 'ChildView'

,我需要得到字符串从ParentView到ChildView。我曾尝试添加一个方法,该方法在我的ParentView中返回一个字符串,并在ChildView中调用它,但没有运气。

不起作用:

ViewController *vc = [[ViewController alloc] init]; 
startDateLbl.text = [vc string]; 

任何帮助就如何实现这一目标,将不胜感激,谢谢。

回答

0

这条线ViewController *vc = [[ViewController alloc] init];将创建一个新的对象。

只是给你一个简单的代码,希望你得到它

ChildViewController *viewController = [[ChildViewController alloc] initWithNibName:@"ChildViewController" bundle:nil]; 
[self.navigationController pushViewController:viewController animated:YES]; 
//here set your label, make sure startDateLbl has getter property 
viewController.startDateLbl.text = [vc string]; 
+0

工作!谢谢! – 2012-02-28 16:25:05

2

最简单的方法是设置属性为您在子视图字符串。

@property (nonatomic, retain) NSString *childString; 

然后在将视图推入堆栈之前或之后,将字符串从父视图传递到子视图。

ViewController *vc = [[ViewController alloc] initWithNibName:@"ViewController"]; 
vc.childString = parentString; 
[self.navigationController pushViewController:vc animated:YES]; // this assumes navController 
+0

感谢您的回答,尽管设置字符串值仅在您推送视图后设置时才有效。 – 2012-02-28 16:25:53

+0

是的乔希这是正确的....你推后的视图是从xib加载。 – 2012-02-28 16:34:50

+0

不,您可以在分配/初始化视图后的任意点分配值。您可以在推送视图之前或之后分配它们。我一直这样做。 – 2012-02-28 19:09:52

0

根据UIViewController类型,您可能有权访问父视图控制器。

self.parentViewController.someString(请参阅UIViewController文档)。