想要将整数值传递给另一个视图

时间:2011-07-27 10:51:59

标签: iphone xcode4 nsinteger

我正在创建一个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 );

4 个答案:

答案 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];