如何在两个ViewControllers之间链接数组?

时间:2013-07-27 23:53:54

标签: ios uiviewcontroller

我是C#的初学者,所以请务必解释一切。

好的,我的UIPickerView中有一个ViewController及其相应的项目数组。当用户点击“提交”时,该应用应该将他们带到SecondViewController,并在标签中显示他们在UIPickerView中选择的项目。我遇到的唯一问题是我似乎无法将两个ViewControllers链接在一起。

我使用ViewController#import导入SecondViewController,但这不起作用。我正在“使用未声明的标识符”错误。我应该怎样做才能将两个ViewController链接在一起?

提前致谢。

2 个答案:

答案 0 :(得分:0)

如果您的第一个ViewController是呈现第二个ViewController的那个,那么您可以在第二个视图控制器中添加一个属性,该属性将设置为所选值。

SecondViewController.h

@property (nonatomic) NSString *selectedItemName;

然后,当您展示第二个视图控制器时,还要设置此属性的值:

SecondViewController *vc2 = [[SecondViewController alloc] init];

vc2.selectedItemName = @"selected item"; //set the actual selected item's value here
[self presentViewController:vc2 animated:YES];

答案 1 :(得分:0)

请参阅Parth Bhatt的回答。我认为这应该对你有帮助:

Passing NSString value between classes

我正在重新粘贴答案,以便在将来链接发生时使答案有用。

从以上链接回答:

让我们使用两个viewControllers的名称作为FirstViewController和SecondViewController。

现在假设您在单击按钮时从FirstViewController推送SecondViewController,然后您需要在按钮单击事件下编写此代码:

 //   In the FirstViewController

- (void)buttonClicked:(id)sender{

    SecondViewController *second = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle: nil];
 second.secString = firstString;
 [self.navigationController pushViewController:second animated:YES];
 [second release];

}

您需要在SecondViewController.h文件中声明:

NSString *secString;

然后创建一个@property

@property (non atomic,strong) NSString *secString;

SecondViewController.m中,您需要@synthesize secString

@synthesize secString;

因此,您还可以通过创建属性并合成它来为secString创建一个getter和setter。

现在您可以轻松访问secString,并且可以在SecondViewController中的任何位置使用它。

只需检查Try并检查firstString的值是否传递给secString,在viewWillAppear:的{​​{1}}上编写以下代码

SecondViewController

如果您需要更多帮助,请与我联系。

希望这有帮助。