Xcode将数据从视图控制器传递到另一个视图控制器在不同的故事板

问题描述:

我有两个包含一个视图控制器的故事板。Xcode将数据从视图控制器传递到另一个视图控制器在不同的故事板

storyboard1 --------> viewcontrollerA

storyboard2 --------> viewcontrollerB

我如何通过从viewcontrollerA一个字符串viewcontrollerB?

例子:

[email protected]"The transfer of data worked!"; 

到目前为止,我知道如何传送的看法,但我不知道如何来传输数据。

这是我的代码转移的观点:

- (IBAction)moveToViewcontrollerB:(id)sender { 

UIStoryboard *storyboard2 = [UIStoryboard storyboardWithName:@"storyboard2" bundle:nil]; 

UIViewController *viewcontrollerB = [storyboard2 instantiateInitialViewController]; 

viewcontrollerB.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 

[self presentViewController:lessonOne_ViewController animated:YES completion:nil]; 

} 

我的问题是,如果我有viewcontrollerB串称为“后的TestString”,我如何更新在viewcontrollerA IBAction为方法字符串?

我只知道如何使用segues传输数据,但由于此viewcontroller位于另一个故事板上,因此segue - prepareForSegue将不起作用。

预先感谢您。

+0

[查看控制器之间传递数据]的可能重复(http://*.com/questions/5210535/passing-data-between-view-controllers) – 2015-03-02 05:09:10

+0

在ViewControllerB中声明一个强类型的NSString。然后访问ViewControllerA作为 - >'viewcontrollerB.testString = @“Hello ViewController B”;' – 2015-03-02 05:21:18

+0

我已经尝试了所有这些解决方案,但都没有工作。这个线程使用了很多折旧方法,它们都不能正确实例化一个viewcontroller。 – hmzfier 2015-03-02 06:35:20

首先将Storyboard ID设置为您的SecondView Controller,如下图所示。

enter image description here

然后添加你button click事件后code

- (IBAction)moveToViewcontrollerB:(id)sender { 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard2" 
                 bundle: nil]; 
    SecondStoryboardVC * secondStoryboardVCOBJ_ = [storyboard instantiateViewControllerWithIdentifier:@"SecondClassStoryboardID"]; 
    [secondStoryboardVCOBJ_ setStrValue:@"The transfer of data worked!"]; 
    secondStoryboardVCOBJ_.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
    [self presentViewController:secondStoryboardVCOBJ_ animated:YES completion:nil]; 
} 

Storyboard2storyboard名。

SecondClassStoryboardIDStoryboard ID你在storyboard viewController中给出的像上面的图片。

SecondStoryboardVC是要presentsecondclass名称

+0

谢谢你的帮助。 Xcode给我这条线的错误:SecondStoryboardVC * secondStoryboardVCOBJ_ = [storyboard instantiateViewControllerWithIdentifier:@“SecondClassStoryboardID”]; ----->这是说“故事板”是一个未知的接收器? – hmzfier 2015-03-02 06:34:22

+0

'SecondStoryboardVC'是你想要呈现的第二个类名。 请参阅最新的答案。在你的例子中'viewcontrollerB' – 2015-03-02 07:16:48

+0

这对我有效,谢谢Abhishek! – hmzfier 2015-03-04 07:26:09