我是C#的初学者,所以请务必解释一切。
好的,我的UIPickerView
中有一个ViewController
及其相应的项目数组。当用户点击“提交”时,该应用应该将他们带到SecondViewController
,并在标签中显示他们在UIPickerView
中选择的项目。我遇到的唯一问题是我似乎无法将两个ViewControllers链接在一起。
我使用ViewController
将#import
导入SecondViewController
,但这不起作用。我正在“使用未声明的标识符”错误。我应该怎样做才能将两个ViewController
链接在一起?
提前致谢。
答案 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
如果您需要更多帮助,请与我联系。
希望这有帮助。