Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
objective-c从不同的角度更新数据_Objective C_Object_Uiviewcontroller_Navigation - Fatal编程技术网

objective-c从不同的角度更新数据

objective-c从不同的角度更新数据,objective-c,object,uiviewcontroller,navigation,Objective C,Object,Uiviewcontroller,Navigation,我正在应用程序中使用基于导航的视图控制器。用户可以单击导航中的按钮打开一个新视图,从中可以选择几个不同的选项。我希望当用户返回到原始视图时,应用程序将在第二个视图中选择的选项保存到原始视图中的对象中 我试过几件事,但都不管用 我已尝试在原始视图控制器中创建对象,并将其转换为属性: @property (nonatomic, retain) NSString *testing; 然后在第二个视图控制器中,当用户选择一个选项时,使用如下内容更新它: if (!oVC) oVC = [[Or

我正在应用程序中使用基于导航的视图控制器。用户可以单击导航中的按钮打开一个新视图,从中可以选择几个不同的选项。我希望当用户返回到原始视图时,应用程序将在第二个视图中选择的选项保存到原始视图中的对象中

我试过几件事,但都不管用

我已尝试在原始视图控制器中创建对象,并将其转换为属性:

@property (nonatomic, retain) NSString *testing;
然后在第二个视图控制器中,当用户选择一个选项时,使用如下内容更新它:

if (!oVC)
    oVC = [[OriginalViewController alloc] init];

oVC.testing = object;
我不能让它工作。有人能给我指出正确的方向吗?非常感谢。

使用NSUserDefaults

在一类中:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]
[prefs setInteger:1 forKey:@"integerKey"];
在另一类中:

 NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
 NSInteger myInt = [prefs integerForKey:@"integerKey"];

//Now myInt has the value 1.
在这里检查是否有错误

您还可以使用NSNotification并传递NSDictionary类型:

NSDictionary *info = [NSDictionary dictionaryWithObject:@"Brad Pitt" forKey:@"User Name"];


[[NSNotificationCenter defaultCenter] postNotificationName:@"UserNameNotification" object:self userInfo:info];

然后您可以添加观察者并为相应的选择器编写方法。

Um。。。我有个问题。现在我正在使用它,每当我从xcode重建它时,我都会得到与关闭模拟器时相同的数据。我只是想把数据从一个视图传递到另一个视图。这不是UserDefaults的作用吗?嗯。。每次重建应用程序时,它都会再次编译。因此,该值应该与您在代码中指定的值相同。简单地说。。。如果在两个视图之间导航,并且希望值向前传递,请使用NSUserDefaults。如果您是反向通信,请使用NSNotifications。用户默认值是持久的。如果这是您想要的场景,则需要在代理中的应用程序启动时重置它们。