我需要从didReceiveRemoteNotification方法中的AppDelegate.m传递NSString数据并将其发送到我的ViewController。每次收到通知时,我都需要将NSLog放在viewDidAppear中。
答案 0 :(得分:0)
您可以通过向ViewControler
的头文件添加属性来完成此操作@property NSString *data;
然后在你的AppDelegate.m中加载ViewController时可以设置属性的值
self.YourViewController.data = @"Your String";
答案 1 :(得分:0)
<强>接口强>
@interface MyAppDelegate : NSObject {
}
@property (nonatomic, retain) NSString *myString;
...
@end
并在AppDelegate
的.m文件中写下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
MyViewController* mainController = (MyViewController*) self.window.rootViewController;
self.myString = @" Here your String ";
return YES;
}
然后,在viewcontroller.m
文件中,您可以获取:
MyAppDelegate *appDelegate = (MyAppDelegate*)[[UIApplication sharedApplication] delegate];
someString = appDelegate.myString; //..to read
appDelegate.myString = someString; //..to write
NSLog(@"mystring is :- %@",appDelegate.myString);
答案 2 :(得分:0)
在AppDelegate.h文件中添加前3行
#define theAppDelegate \
((AppDelegate *)[UIApplication sharedApplication].delegate)
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong,nonatomic) NSString* strLoadApi; // create one property that you want to use in another viewcontoller.
任何viewcontoller都可以设置该值,并且必须在访问/获取值之前设置。
theAppDelegate.strLoadApi = @"Hello";
任何viewcontoller都可以获得
之类的值NSLog(@"%@",theAppDelegate.strLoadApi);
答案 3 :(得分:0)
首先,您需要在AppDelegate.h中获取属性
@property(nonatomic) NSString *yourProperty;
然后在AppDelegate中将值赋给该属性。
然后在您的ViewController中,您可以访问该属性:
AppDelegate * del = (AppDelegate*)[UIApplication sharedApplication]. delegate
NSString *str = del.yourProperty
现在使用此str在UI上显示。
答案 4 :(得分:0)
每当你想传递NSString时添加这段代码
//find ur viewcontroller and set parameter
for (UIViewController *view in self.navigationController.viewControllers) {
if (view isMemberOfClass:[yourViewController class]) {
yourViewController *yview = (yourViewController *) view;
yview.parameter = @"string";
break;
}
}
在yourViewController中为参数
设置getter setter答案 5 :(得分:0)
这是对@Himanshu的答案的扩展,如果您在NSString
中获得了AppDelegate
,并且需要保留以进一步保留NSDictionary
使用,您可以创建属性并存储它。您可以通过多种方式存储/检索值(例如:AppDelegate
)。所以选择一个能让你以后生活更轻松的那个。
然后,您可以获取AppDelegate.h
的共享对象并访问该属性。
添加他的代码,以便为将来的读者提供。
在@property (strong, nonatomic) NSString *strResponse;
AppDelegate.h
将其添加到#define theAppDelegate ((AppDelegate *)[UIApplication sharedApplication].delegate)
(导入语句后)
self.strResponse = @"some response";
更新字符串值。
内部AppDelegate.m
theAppDelegate.strLoadApi = @"some good response";
外部AppDelegate.m
NSLog(@"%@",theAppDelegate.strLoadApi);
您可以在需要时访问它。
SELECT target_financial_advisor,
acquiror_finanial_advisor,
target_nation,
acquiror_nation,
rank_value,
rank_date
FROM ma_global
WHERE target_nation = 'France'
AND acquiror_nation = 'France'
AND EXTRACT(YEAR
FROM "rank_date") = 2013
AND rank_date IS NOT NULL
GROUP BY target_financial_advisor,
acquiror_finanial_advisor LIMIT 50;
<子> P.S。这不是实现这一目标的最佳方式。它实际上不推荐,但我相信,你正在学习iOS。所以它是你开始的基础。但是,您应该阅读此answer,以便为将来的发展做好准备。
答案 6 :(得分:0)
NSString *sData = @"data";
[[NSUserDefaults standardUserDefaults] setObject:sData forKey:@"keyName"];
[[NSUserDefaults standardUserDefaults] synchronize];
to get it back later
NSString *sData = [[NSUserDefaults standardUserDefaults]
stringForKey:@"keyName"];