NSInteger到另一个视图

时间:2012-06-01 05:27:39

标签: iphone ios xcode

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

NSInteger index = [carousel indexOfItemView:sender];

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

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

但我不能用上面的代码来做。 还有其他方法。

4 个答案:

答案 0 :(得分:2)

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

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

您可以使用以下代码在其他视图中检索它:

 NSInteger savedIndex = [[NSUserDefaults standardUserDefaults] integerForKey:@"integer"]; 

答案 1 :(得分:1)

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

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

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

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

答案 2 :(得分:0)

使用以下代码:

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

答案 3 :(得分:0)

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

@property(nonatomic,assign)int indexInViewController2;

synthesize in viewController2.m as follows:

@synthesize indexInViewController2;

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

viewcontroller2Obj.indexInViewController2 = [carousel indexOfItemView:sender];