当前位置: 首页 > 知识库问答 >
问题:

在Segue之间传递数据而不使用PrepareForSegue

督翰学
2023-03-14

我正在创建一个用户设置帐户使用故事板的5个步骤。每个步骤都有一个ViewController:1:)输入姓名、联系人等,2:)导入照片,3:)输入等4:)更多输入5:)确认页面,如果用户点击“确认”->获取所有输入并上传解析。

我在网上搜索时得到的唯一解决方案是创建一个函数“Prepare for Segue”并传递信息...但对我来说,这没有任何意义:

如果我有1000个viewcontroller,第一个viewcontroller信息将通过所有1000个viewcontroller传递?为什么不让1000视图控制器获取遗留下来的所有信息呢?例如:viewcontroller N:50不需要关于viewcontroller N:1的信息...这是胡说八道。

这有没有其他的办法来实施呢?

也许有一个解决方案,因为我正在使用解析,就像我做的那样:

ParseClass[“name”]=textfield.text

它将信息发送给Parse,然后它们保存这些信息,直到我执行类似SaveInBackground()的操作。

我正在尝试使用ViewControllers找到类似这样的解决方案。每个viewcontroller发送信息来html" target="_blank">解析并保存这些信息,直到在viewcontroller上发生“saveInbackground()”。

可能?谢谢

共有3个答案

谭池暝
2023-03-14

试试看。

let yourInstance = NSUserDefaults.standardUserDefaults().objectForKey("yourKey")
NSUserDefaults.standardUserDefaults().synchronize()
许琛
2023-03-14

如果我们的输入是有限的,则创建一个模型类,并为其提供如下属性:

@interface UserDataInput : NSObject
@property (nonatomic)NSString *name;
@property (nonatomic)NSString *contactNumber;
....
blah blah bla
....
@end

然后将其作为一个单例类

@implementation UserDataInput
+ (instancetype)sharedInstance {
    static dispatch_once_t onceToken;
    static UserDataInput *sharedInstance = nil;
    dispatch_once(&onceToken, ^{
        sharedInstance = [[[self class] alloc] init];
    });
    return sharedInstance;
}
@end

然后在离开视图控制器时设置该视图控制器的属性,

UserDataInput *sharedInput = [UserDataInput sharedInstance];
sharedInput.name = self.nameField.text;
etc....

在final view controller中,您可以访问这些属性以便上载和解析。

殳宸
2023-03-14

是的。有可能。您可以使用nsuserdefaults将您的信息存储到内存中,一旦存储了信息,您就可以在项目中的任何地方使用它。

就像你可以用它来储存价值:

NSUserDefaults.standardUserDefaults().setObject(yourObject, forKey: "yourKey")

现在,您可以使用您的密钥从任何地方检索此信息,如下所示:

let yourInstance = NSUserDefaults.standardUserDefaults().objectForKey("yourKey")

您可以根据需要转换它的类型。

欲知更多信息,请阅读Apple的NSUserDefaults文档。

通过使用classstruct将值从一个视图传递到另一个视图而不需要segue的另一种方法。

您可以从Apple文档中阅读关于结构的更多信息。

 类似资料:
  • 问题内容: 我正在以这种方式制作包含3个子组件的组件: 主要组成部分包含英雄列表。标头组件包含两个按钮,用于将主组件上的视图切换到列表或网格视图。 我现在遇到的问题是将数据从标头组件传递到主组件。因此,当我单击网格按钮时,主要内容上的视图应更改为网格视图,与行视图相同。 如何在角度1.5的子组件之间传递数据? 问题答案: 成分法 我建议您与Angular 2组件方法保持一致,并使用输入 / 输出方

  • 我想把我的数据传递给其他的viewcontroller,但我做不到。我的密码在下面。ViewControllers的屏幕截图在这里。当用户写出他们的名字和密码时,我想传递另一个用户的数据,但他们之间还有一个viewcontroller。我认为这是一个问题,但我可以移除这个额外的视图控制器,所以我想了解如何才能把这些数据传递给其他的一个? 第一个viewcontroller的代码 第二个viewco

  • 我成功地尝试在三个活动之间传递数据。那就是: (数据3)活动1(数据1)- 现在的问题是: 我希望使用条件在这些活动之间传递数据。这是在Activity2中,在将数据发送到Activity3之前,我想检查一下 这是名为PickCard的Activity1的代码。Java语言 下面是Activity2 BuildWord的代码。Java语言 这是名为DropCard的Activity3的代码。Jav

  • 我正在尝试在活动之间传递数据 我使用intents在常规活动之间传递数据 请考虑以下代码:: 假设我将来自名为的其他活动的数据作为意图发送到 现在,如何接收中的数据,这些数据是从获得的,然后再将其传递到中 象形表示为:: {EDIT}--如果根据答案可以这样做--不明确,因为AndroidTabRestaurantDescearchListView是一个选项卡活动

  • 问题内容: 抱歉,如果我的问题是菜鸟。我正在使用pgsql 8.4运行Django 1.2,并且需要在从用户处获得输入后运行Java程序,进行一些计算并将结果返回给用户。 我是否可以知道在Java和Python Django之间传递数据的最佳方法是什么,以便解决上述情况?我听说过Jython,但是根据Django文档,它需要扩展名jython- Django,但目前不支持django1.2.x。我

  • 问题内容: 我有一个C结构。 我想将数据从Java映射到C结构,如何使用JNI进行处理?我不会编程Java代码。Java程序员只是想知道他应该以哪种形式向我发送数据?他是否应该期待更多细节 我目前正在通过用包含2列的CSV文件填充结构实例来测试我的代码。 我也想从我的C代码向Java应用程序返回3个double值。 问题答案: 向您的Java程序员提供以下声明: 在您的C代码中,您将能够使用传递的