【问题标题】:How to Send data between view controllers StoryBoard Xcode如何在视图控制器 StoryBoard Xcode 之间发送数据
【发布时间】:2012-12-17 22:04:31
【问题描述】:

请帮帮我..

我想在情节提要的不同控制器之间传递数据。 例如。

第一个视图控制器

NSString *firstValue;

firstValue = @"First Number";

现在我想将它发送到结果视图控制器并存储在

NSString *resultFromFirstVC;

并显示在标签中。

[label setText: resultFromFirstVC];

所以标签显示:

第一个数字

【问题讨论】:

    标签: xcode uiviewcontroller storyboard


    【解决方案1】:

    使用此方法在所有视图控制器中传递属性

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
        if ([[segue identifier] isEqualToString:@"ShowNewVC"]) {
            NextViewController *nextVC = (NextViewController *)[segue destinationViewController];
            nextVC.someProperty = self.myProperty;
        }
    }
    

    更改“NextViewController”的名称以匹配您的名称。 请务必在 Storyboard 文件中添加“Segue Identifiers”。

    这应该可行。但是,当您必须通过这么多视图控制器传递此属性时,您可以考虑创建一个单例“数据管理器”对象来存储数据。视图控制器可以通过单例访问数据。

    祝你好运!

    【讨论】:

    • 我使用 [Segue destinationViewController] 但似乎 prepareSegue() 允许添加数据并随后移动到相邻视图(即视图三到视图二)。您是否有任何示例项目或链接用于使用 Singletion“数据管理器”来理解和获取命令。
    • 是的。这是一个很好的教程/指南galloway.me.uk/tutorials/singleton-classes
    • 创建一个单例。示例中的“someProperty”应该用于存储您需要传递的这个字符串。在第一个视图控制器中,您应该使用类似 [[MyManager sharedManager] setSomeProperty:firstValue];并在第四个视图控制器中使用 NSString *theString = [[MyManager sharedManager] someProperty];
    猜你喜欢
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多