【问题标题】:Xcode pass data from a viewcontroller to another viewcontroller in a different storyboardXcode 将数据从视图控制器传递到不同故事板中的另一个视图控制器
【发布时间】:2015-05-02 09:43:35
【问题描述】:

我有两个故事板,每个故事板都包含一个视图控制器。

storyboard1 --------> viewcontrollerA

storyboard2 --------> viewcontrollerB

如何将字符串从 viewcontrollerA 传递到 viewcontrollerB?

例子:

viewcontrollerB.testString=@"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 方法中更新该字符串?

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

提前谢谢你。

【问题讨论】:

  • 在 ViewControllerB 中声明一个强类型的 NSString。然后在 ViewControllerA 中访问 --> viewcontrollerB.testString = @"Hello ViewController B";
  • 我已经尝试了所有这些解决方案,但它们都不起作用。这个线程使用了很多废弃的方法,没有一个可以正确实例化视图控制器。

标签: ios objective-c xcode uiviewcontroller uistoryboardsegue


【解决方案1】:

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

然后在您的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 名称。

SecondClassStoryboardID 是您在storyboard viewController 中给出的Storyboard ID,如上图所示。

SecondStoryboardVC 是您想要presentsecondclass 名称

【讨论】:

  • 感谢您的帮助。 Xcode 在这行给我一个错误: SecondStoryboardVC * secondStoryboardVCOBJ_ = [storyboard instantiateViewControllerWithIdentifier:@"SecondClassStoryboardID"]; -----> 是说“故事板”是未知的接收者?
  • SecondStoryboardVC 是您要呈现的第二个类名。请参阅更新的答案。在您的示例中,它的 viewcontrollerB
  • @AbhishekSharma 什么是“setStrValue”?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多