2

我正在创建一个 iphone 应用程序,其中我的 oneviewcontroller 中有一些整数值,我希望在我的 secondviewcontroller 控制器中使用该整数值。

值将是随机的。我将此整数值存储在id score中

Nw 我正在使用此代码,但我无法获得整数值。

代码:将整数值从一个 UIView 传递到另一个 UIview

整数值在第二个视图控制器处始终变为零。
任何帮助将不胜感激。
谢谢。

我的代码:

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

4 回答 4

3

例子:

如果我需要将 int 值 4 存储在 FirstViewController 中,

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

我可以得到 SecondViewController 作为,

int value = [[NSUserDefaults standardUserDefaults] objectForKey:@"integer"]
NSLog(@"integer = %d", [[NSUserDefaults standardUserDefaults] objectForKey:@"integer"]);

希望它能完美运行。

于 2011-07-27T11:51:26.047 回答
0

由于 'id' 表示对象(参见 ref),但我们需要数据类型。

与其将其声明为id,不如将其声明为int自身。

就像是,

int score;

或者

NSInteger score;

编辑:

还要添加属性并合成它。在.h

@property(nonatomic,assign) NSInteger score;

在.m

@synthesize score;

在第一个视图控制器中,将值传递给第二个视图,

NSInteger *cal = (myScore * 100)/400  ;
totalscore = cal;
score = totalscore;
secondViewObj.score = score;
于 2011-07-27T10:59:33.653 回答
0

一种简单的方法是,将值存储在 NSUserDefault 中,并从 secondviewcontroller 中的 NSUserDefault 中获取整数值。

于 2011-07-27T11:10:36.940 回答
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];
于 2011-07-27T11:43:00.767 回答