我在第一視圖上有三個按鈕。現在我在第二個視圖中只有一個標籤。如何將價值從一個頁面傳遞給另一個頁面?
- 通過點擊第一按鈕i得到的值1.
- 通過點擊第二按鈕i得到的值2.
- 通過點擊第三按鈕i得到的值3.
現在我想要在第二個視圖上的標籤上打印此值,並且每次我只想打印一個值。
- 當我按下第一個按鈕,然後刪除標籤值,只有1將打印標籤。
- 當我按下第二個按鈕,然後刪除標籤值,只有2將打印標籤。
- 當我按下第三個按鈕,然後刪除標籤值,只有3將打印標籤。
我在第一視圖上有三個按鈕。現在我在第二個視圖中只有一個標籤。如何將價值從一個頁面傳遞給另一個頁面?
現在我想要在第二個視圖上的標籤上打印此值,並且每次我只想打印一個值。
刪除值是容易的,因爲每次你打電話
[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]
屬性。那就是你需要的。
在您的推斷視圖中,爲您的標籤寫入屬性。 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.
我認爲這是不好的設計,有UILabel的等等屬性,封裝它們的類應該負責他們的更新,你應該傳遞一個數據對象然後它會更新它的標籤。 –
我同意@SimonLee ..應該傳遞數據對象而不是設計元素。 – Shri
是否在另一個viewcontroller類中有標籤? – booleanBoy