我正在创建一个iphone应用程序,其中我的oneviewcontroller中有一些整数值,我想在我的secondviewcontroller控制器中使用该整数值。
值将是随机的。 我将此整数值存储在 id score
中我正在使用此代码但是,我无法获得整数值。
代码:passing integer value from one UIView to another UIview
整数值在secondviewcontroller中始终为零 任何帮助将不胜感激 感谢。
我的代码:
FirstView.h文件
NSInteger myScore;
id score;
NSInteger totalscore;
.m文件
NSInteger *cal = (myScore * 100)/400 ;
totalscore = cal;
score = totalscore;
SecondView.h文件
int scorevalue ;
SecondView.m文件
FirstViewController *firstVC = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
value = firstVC.Score;
NSLog(@"SCORE : %d" ,value );
答案 0 :(得分:3)
示例:
如果我需要在FirstViewController中存储int值4,
[[NSUserDefaults standardUserDefaults] setObject:4 forKey:@"integer"];
[[NSUserDefaults standardUserDefaults] synchronize];
我可以在SecondViewController中获取,
int value = [[NSUserDefaults standardUserDefaults] objectForKey:@"integer"]
NSLog(@"integer = %d", [[NSUserDefaults standardUserDefaults] objectForKey:@"integer"]);
希望它能完美运作。
答案 1 :(得分:0)
由于'id'表示对象(see ref),但我们需要数据类型。
不要将其声明为id
,而是将其声明为int
本身。
类似的东西,
int score;
或
NSInteger score;
修改强>
还要添加属性并进行合成。 在.h
@property(nonatomic,assign) NSInteger score;
在.m
@synthesize score;
在第一个视图控制器中,将值传递给secondView,
NSInteger *cal = (myScore * 100)/400 ;
totalscore = cal;
score = totalscore;
secondViewObj.score = score;
答案 2 :(得分:0)
简单来说,将值存储在NSUserDefault中,并从secondviewcontroller中的NSUserDefault获取整数的值。
答案 3 :(得分:0)
在SecondViewController
中的.h文件中int value;
在SecondViewController中创建以下函数
-(void)setValue:(int)number{
value=number;
}
现在在第一个视图控制器中这样做:
ParentViewController *objSecond = [[ParentViewController] initwithNibName:@"parentView.xib" bundle:nil];
[objSecond setValue:15]; // Pass actual Value here
[self.navigationController pushViewController:objSecond animated:YES];
[objSecond release];
现在,在secondViewController中,viewWillAppear方法写下这个。
-(void)viewWillAppear:(BOOL)animated{
myValue = value;
}
我手写这个时请检查拼写错误。希望这有帮助。
如果您没有使用navigationContoller,那么您可以这样做。
SecondViewControler *objSecond = [[SecondViewController] initwithNibName:@"secondview.xib" bundle:nil];
[objSecond setValue:15]; // Pass actual Value here
[objSecond viewWillAppear:YES];
[self.view addSubview:objSecond];
[objSecond release];