1

我需要将一个传递NSInteger给我的其他视图控制器:

NSInteger index = [carousel indexOfItemView:sender];

这是在 a 中实现的UIButton,我想在NSUserDefaults这里使用类似的示例代码:

[[NSUserDefaults standardUserDefaults] setObject:4 forKey:@"integer"];
[[NSUserDefaults standardUserDefaults] synchronize];

但是我不能用上面的代码来做到这一点。有没有其他方法。

4

4 回答 4

2

您可以使用 NSUserdefaults 将值从一个 Viewcontroller 传递到另一个。使用以下代码:

NSInteger index = [carousel indexOfItemView:sender];
[[NSUserDefaults standardUserDefaults] setInteger:index forKey:@"integer"];
[[NSUserDefaults standardUserDefaults] synchronize];

您可以使用以下代码在另一个视图上检索它:

 NSInteger savedIndex = [[NSUserDefaults standardUserDefaults] integerForKey:@"integer"]; 
于 2012-06-01T05:36:36.177 回答
1

从 UIButton 所在的视图控制器中,您需要获取其他视图控制器的引用,然后在其上有一个属性来设置值。

一种方法是在 UIViewController 上有一个属性,该属性包含 UIButton 以分配对您需要设置值的视图控制器的引用。在制作按钮视图控制器时设置该值。

另一种方法是在您的应用程序委托中引用目标视图控制器,您可以通过 [[UIApplication sharedApplication] 委托] 调用从任何地方访问它。

您可能还想更多地搜索 StackOverflow,我相信这个问题之前已经回答过......

于 2012-06-01T05:42:05.530 回答
0

使用以下代码:

[[NSUserDefaults standardUserDefaults]setInteger:4 forKey:@"integer"];
[[NSUserDefaults standardUserDefaults] synchronize];
于 2012-06-01T05:30:38.083 回答
0

或者您可以使用属性将值传递给另一个视图控制器,如果您正在从当前视图控制器转换到该视图控制器并且您只在下一个视图控制器而不是整个应用程序中需要该值。我的意思是假设您在 viewController1 并且您是从 viewController1 过渡到 viewController2。并且您希望 viewController2 中的索引值。在这种情况下,您可以将 viewController2.h 中的属性声明为:

@property(nonatomic,assign)int indexInViewController2;

synthesize in viewController2.m as follows:

@synthesize indexInViewController2;

在从 viewController1 转换到 viewController2 时,您可以按如下方式传递值:

viewcontroller2Obj.indexInViewController2 = [carousel indexOfItemView:sender];
于 2012-06-01T05:50:57.853 回答