2011-10-18 234 views
0

我在第一視圖上有三個按鈕。現在我在第二個視圖中只有一個標籤。如何將價值從一個頁面傳遞給另一個頁面?

  • 通過點擊第一按鈕i得到的值1.
  • 通過點擊第二按鈕i得到的值2.
  • 通過點擊第三按鈕i得到的值3.

現在我想要在第二個視圖上的標籤上打印此值,並且每次我只想打印一個值。

  • 當我按下第一個按鈕,然後刪除標籤值,只有1將打印標籤。
  • 當我按下第二個按鈕,然後刪除標籤值,只有2將打印標籤。
  • 當我按下第三個按鈕,然後刪除標籤值,只有3將打印標籤。

+0

是否在另一個viewcontroller類中有標籤? – booleanBoy

回答

2

刪除值是容易的,因爲每次你打電話

[yourLabel setText:@"your value"]; 

你直接刪除舊值。

現在,當我們談論的觀點之間移動信息這並不難,你可以使用例如應用程序委託

添加在應用程序委託.h文件中

{ 
    // app delegate declarations 
    NSString *buttonValue; 
} 

@property (nonatomic, retain)NSString *buttonValue; 

而且在應用委託.m文件添加

@synethize buttonValue //on the top 

現在,你對你的看法添加

#import YourAppDelegate.h 

然後在代碼

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; 

而且buttonValue的設定值與

[appDelegate setButtonValue:@"value"]; 

現在,當你在第二視圖剛讀值與

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; 

[appDelegate buttonValue] 
+0

謝謝阿馬爾。非常感謝你 – Rishabh

+0

歡迎你 –

+0

和旁邊的標籤,如果我拿一個文本,那麼我將如何取文本中的整數值 – Rishabh

0

屬性。那就是你需要的。

在您的推斷視圖中,爲您的標籤寫入屬性。 e.g: 在.h文件中

@interface classname 
{ 
    UILabel *myLabel; 
} 
@property(nonatomic,retain) IBOutlet UILabel *myLabel; 

然後在你的。米

@implementation classname 
@synthesize myLabel; 

現在,因爲你爲的UILabel書面財產(getter和setter方法),你可以從你的第一類只在其中創建第二類對象將其值設置。

SecondClass *secondObj = [[SecondClass alloc]init]; 
secondObj.myLabel.text = buttonClicked; //buttonClicked is NSString set when corresponding button is clicked e.g:1,2,3 etc. 
+0

我認爲這是不好的設計,有UILabel的等等屬性,封裝它們的類應該負責他們的更新,你應該傳遞一個數據對象然後它會更新它的標籤。 –

+0

我同意@SimonLee ..應該傳遞數據對象而不是設計元素。 – Shri

相關問題