如何从应用程序委托访问字符串(在视图控制器中)

时间:2016-05-26 07:38:18

标签: ios objective-c

在视图控制器中,我将在服务器的响应对象中存储参数(token& edriver_id)。我可以将其存储在2个字符串中,例如fetchtokenStringfetchedriveridString ...如下所示

        NSLog(@"Response from server 1 :  %@", [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]);


    NSError *error;
    NSArray *temp = [NSJSONSerialization JSONObjectWithData:responseObject options:kNilOptions error:&error];

    // in this line we assingn the current value to global value
    _tokenString = [[temp objectAtIndex:0] valueForKey:@"token"];
    _edriveridString = [[temp objectAtIndex:0] valueForKey:@"edriverId"];

我需要知道,如何从app delegate访问那个2字符串(在视图控制器中)...我不知道这个,我不知道实现这个...请帮助我。

我希望从App委托访问这两个字符串...我怎么能这样做?

5 个答案:

答案 0 :(得分:1)

这里有几步。首先,确保在头文件中定义了要在ViewController中访问的属性。

然后问题是你的观点是如何构建的。你是否使用导航控制器?如果是这样,在AppDelegate中,您可以像这样访问导航控制器:

UINavigationController *navController = (UINavigationController*)self.window.rootViewController;

然后使用该navController,您可以访问您的UIViewController。首先确保已导入该类以供使用:

#import "MyViewController.h"

然后您就可以访问您的视图控制器了:

MyViewController *myViewController = [navController.viewControllers objectAtIndex:0];

然后从该视图控制器访问您的属性。

答案 1 :(得分:0)

以下是选项:

  • SINGLETON
  • NSUserDefaults的

答案 2 :(得分:-1)

苏拉杰,

为什么要将这些变量存储在您的类中,然后在app delegate中访问它,直到您可以直接在appDelegate中存储这些值?在你的类appdelegate访问appdelegate中创建两个公共变量tokenString和edriveridString,这应该不难,然后在appdelegate中直接使用它们:)

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.tokenString = [[temp objectAtIndex:0] valueForKey:@"token"];
appDelegate.edriveridString = [[temp objectAtIndex:0] valueForKey:@"edriverId"];

现在数据是appdelegate随时访问它:)现在所有人都可以访问奖金:) AppDelegate也是单身:)所以不用担心内存中多个变量实例:)

答案 3 :(得分:-1)

In [106]: df1
Out[106]:
    a   b   m  d
0   1  10  11  9
1  12  15  27  3
2  18  19  37  1

In [107]: df2
Out[107]:
    a   b    m   d
0   1   5    6   4
1   2  10   12   8
2  12  13   25   1
3  13  20   33   7
4  50  60  110  10

答案 4 :(得分:-1)

将这些字符串存储在AppDelegate中,并在应用程序的任何视图控制器中访问它们。

在AppDelegate.h中写下以下行

@property (strong, nonatomic) NSString *tokenString;

@property (strong, nonatomic) NSString * edriveridString;

将这些字符串存储在AppDelegate中,并在应用程序的任何视图控制器中访问它们。在AppDelegate.h中声明

@property(强,非原子)NSString tokenString; @property(强,非原子)NSString edriveridString;

并在这些变量中设置值:

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication  sharedApplication] delegate];
appDelegate.tokenString = [[temp objectAtIndex:0]    valueForKey:@"token"];
appDelegate.edriveridString = [[temp objectAtIndex:0] valueForKey:@"edriverId"];