我已經衝浪了很多。但是我得到的結果告訴我要麼使用appDelegate,要麼使用單身等。 所有這些都會產生相同的結果。即我可以在不同的ViewController中共享一個變量,但一旦ViewController被更改,變量就會失去它的值。 例如,我使用了一個名爲myVar類型爲int的變量。我在AppDelegate中聲明瞭它,然後我可以在AppDelegate的幫助下在所有ViewController中使用它。但只要我從A ViewController移動到B ViewController,myVar變量的值就會再次變爲「0」。我不想那樣。我想讓變量保持它的值。我不想在pushViewController等的幫助下傳遞這些數據。請給我一個好的解決方案。如何在Objective-C中共享變量及其值?
AppDelegate.h
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, assign) int myVar;
@end
FirstViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
AppDelegate* app = (AppDelegate*)[UIApplication sharedApplication].delegate;
app.myVar = 1;
NSLog(@"%d",app.myVar); //Shows "1" in Log
}
SecondViewController.m
- (IBAction)pressButton:(id)sender{
AppDelegate * app = (AppDelegate*)[UIApplication sharedApplication].delegate;
NSLog(@"%d",app.myVar); // Shows "0" in Log (But I want it to show "1" as I have already set "myVar" value as "1" in my FirstViewController)
}
我不明白你的要求。也許你可以展示一些代碼來演示這個問題? – Paulw11 2015-02-09 10:43:17
發佈一些代碼,你必須做一些錯誤的事情,否則應用程序委託工作正常。 – 2015-02-09 10:45:26
發佈了代碼 – Rahul 2015-02-09 10:49:46