2011-07-27 37 views
2

我正在創建一個iphone應用程序,其中我的oneviewcontroller中有一些整數值,我希望在我的secondviewcontroller控制器中使用整數值。想要將整數值傳遞到另一個視圖

值將是隨機的。 我存儲這個整數值在id分數

Nw我正在使用此代碼,但我無法獲得整數值。

CODE: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

你能顯示你的代碼嗎? – Sascha

+0

@Sascha:我編輯了我的代碼..請看看.. – iUser

+0

@Shrey:好的..我試過這個,但我想在SecondView ..中的值,並在第二次查看值變成0(零)..任何幫助。 !!:o – iUser

回答

3

例子:

如果我需要的int值4存放在FirstViewController,

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

我可以在SecondViewController爲GET,

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

希望它會完美地工作。

+1

哦...是的,它工作得很好.. 非常感謝開發人員.. :)我從最近2天開始工作.. 再次感謝您的幫助.. !! :) – iUser

+0

+1感謝這麼好的回答:) – swiftBoy

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; 
+0

讓我試試這個..謝謝!! – iUser

+0

我試過這個,但不知道如何在我的第二個視圖中獲得該值..這是我正在嘗試解決的主要問題.. – iUser

+0

我編輯了我的答案。你嘗試過嗎? – Ilanchezhian

0

甲簡單的方法是,存儲該值在NSUserDefault中,並從secondviewcontroller中獲取NSUserDefault的整數值。

+0

感謝您的快速回復..但我是iPhone新手。 那麼你能告訴我如何在NSUserDefault中存儲值嗎? 你有任何鏈接或文件? – iUser

+0

會在下一個答案中給你。 – iOS

0

拿這個。在SecondViewController

int value; 

.h文件做如下功能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]; 
相關問題