我需要将NSInteger
传递给我的其他视图控制器:
NSInteger index = [carousel indexOfItemView:sender];
这是在UIButton
中实现的,我想在这里使用NSUserDefaults
这样的示例代码:
[[NSUserDefaults standardUserDefaults] setObject:4 forKey:@"integer"];
[[NSUserDefaults standardUserDefaults] synchronize];
但我不能用上面的代码来做。 还有其他方法。
答案 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];