我正在使用storyboard创建一个包含5个步骤的用户设置帐户。每一步都有一个ViewController:1º)输入名称,联系人等,2º)导入照片,3º)输入等4º)更多输入5º)确认页面,如果用户点击“确认” - >获取所有输入并上传到Parse。
我在网上搜索时获得的唯一解决方案是创建一个功能“准备Segue”并传递信息......但对我来说,这没有任何意义:
如果我有1000个viewcontrollers,第一个viewcontroller信息将通过所有1000个viewcontrollers传递?为什么nº1000视图控制器不能获取留下的所有信息?例如:视图控制器n.50不需要有关viewcontrollernº1的信息......这是一个废话。
还有其他方法可以实现吗?
也许有一个解决方案因为我正在使用Parse,就像我一样:
ParseClass [“Name”] = textfield.text
它向Parse发送信息,他们持有它直到我做类似SaveInBackground()的事情。
我正在尝试使用viewcontrollers找到这样的解决方案。每个viewcontroller都发送信息来解析并保存信息,直到Viewcontrollernº5上发生“saveinbackground()”。
可能?谢谢
答案 0 :(得分:5)
是的,这是可能的。您可以使用<?xml version="1.0" encoding="UTF-8"?>
<!--https://github.com/wildfly/wildfly-core/blob/master/server/src/main/resources/schema/jboss-deployment-structure-1_2.xsd-->
<jboss-deployment-structure>
<deployment>
<exclude-subsystems>
<subsystem name="logging"/>
</exclude-subsystems>
<exclusions>
<module name="org.apache.commons.logging"/>
<module name="org.apache.log4j"/>
<module name="org.jboss.logging"/>
<module name="org.jboss.logging.jul-to-slf4j-stub"/>
<module name="org.jboss.logmanager"/>
<module name="org.jboss.logmanager.log4j"/>
<module name="org.slf4j"/>
<module name="org.slf4j.impl"/>
</exclusions>
</deployment>
将信息存储到内存中,一旦存储,您就可以在项目的任何位置使用它。
就像你可以用这种方式存储价值:
NSUserDefaults
现在,您可以使用yourKey从任何位置检索此信息,如下所示:
NSUserDefaults.standardUserDefaults().setObject(yourObject, forKey: "yourKey")
你可以根据需要选择它。
有关详细信息,请阅读Apple Document for NSUserDefaults。
使用let yourInstance = NSUserDefaults.standardUserDefaults().objectForKey("yourKey")
或Class
,将值从一个视图传递到另一个视图而不使用segue的另一种方法。
您可以从Apple Documentation详细了解Struct
和Classes
。
答案 1 :(得分:1)
如果我们的输入是有限的,请创建一个包含ex:
属性的模型类@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....
在最终视图控制器中,您可以访问这些属性以上传到解析。
答案 2 :(得分:0)
试试吧。
let yourInstance = NSUserDefaults.standardUserDefaults().objectForKey("yourKey")
NSUserDefaults.standardUserDefaults().synchronize()