0

我是 C# 的初学者,所以请务必解释所有内容。

好的,所以我UIPickerViewViewController. 当用户单击“提交”时,应用程序应该将他们带到 a ,并在标签SecondViewController中显示他们选择的项目。UIPickerView我遇到的唯一问题是我似乎无法将两个 ViewController 链接在一起。

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

提前致谢。

4

2 回答 2

0

请参阅 Parth Bhatt 的这个答案。我认为这应该可以帮助您:

在类之间传递 NSString 值

我正在重新粘贴答案以使答案在将来链接断开时有用。

从上面的链接回答:

让我们使用两个视图控制器的名称作为 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需要@synthesizesecString

@synthesize secString;

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

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

只是为了检查尝试并检查 firstString 的值是否传递给 secString,在viewWillAppear:of上编写以下代码SecondViewController

NSLog(@"secString: %@",secString);

如果您需要更多帮助,请告诉我。

希望这可以帮助。

于 2013-07-28T05:06:34.607 回答
0

如果您的第一个 ViewController 是呈现您的第二个 ViewController 的那个,那么您可以在 second-view-controller 中添加一个属性,该属性将设置为所选值。

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];
于 2013-07-28T00:03:26.417 回答