如何从appdelegate获取viewcontroller中NSMutableArray的值

时间:2014-07-14 10:53:13

标签: ios objective-c

我在ViewController.h中有NSMutableArray属性现在我想从appdelegate获取此Array值。 是否有人可以帮助我做到这一点。

在viewcontroller.h中

@property (nonatomic, retain) NSMutableArray *fullImg;

在viewcontroller.m

@synthesis fullImg;

我还为fullImg分配了值。现在我想在app delegate中获得该值。

提前致谢。

4 个答案:

答案 0 :(得分:1)

  1. 将数组声明从viewController移动到AppDelegate
  2. 在viewController.m中执行:
  3. 顶级文件:     #import" AppDelegate.h"

    你想要使用数组:

    AppDelegate *ap = [[UIApplication sharedApplication] delegate];
    ap.fullImg // -> USE IT HOW YOU WANT 
    
    ...
    

答案 1 :(得分:0)

viewController类创建对象时,可以通过创建新的自定义构造函数将数组引用传递给viewController。即,

//in appdidFinishLaunchingWithOptions
ViewController *viewController = [[ViewController alloc] initWithArray:fullImgArray];
self.window.rootViewController = viewController;


// In ViewController.h
- (id)initWithArray:(NSMutableArray *)fullImgArray;

// In ViewController.m
- (id)initWithArray:(NSMutableArray *)fullImgArray
{
   self = [super init];

   if (self)
   {
       self.fulImg = fullImgArray;
   }
   return self;
}

答案 2 :(得分:0)

有两种可能性。

  1. 使用appDelegate。使用app delegate中的属性在ViewContriollers之间传递数据  和AppDelegate。

    第一个控制器中的

    MyAppdeleagte appDelegate = [[UIApplication sharedApplication] delegate];    appDelegate.fullImg = dataToPass;

    在第二个控制器中

    MyAppdeleagte appDelegate = [[UIApplication sharedApplication] delegate];        数据= appDelegate.fullImg;

    AppDelegate中的

    self.fullImg =数据;

  2. 2.指定对象实例。

    分配AppDelegate后,在ViewController中

    ,指定当前viewController中的对象实例与AppDelegate中的对象实例相同。为此,在AppDelegate中声明一个NSMutableArray属性。

    在AppDelegate.h中

    @property NSMutableArray *fullImg;
    
    ViewController.h中的

     MyAppdeleagte appDelegate=[[UIApplication sharedApplication]delegate]; 
    
    appDeleagte.fullImg=self.fullImg;
    

答案 3 :(得分:0)

您可以使用密钥将整个NSMutableArray放入NSUserDefaults中。

在app delegate:

NSUserDefaults *def=[NSUserDefaults StanderUserDefaults];
[def setObject:fulImg forKey:@"ImageArray"];

在ViewController类中:

NSUserDefaults *def=[NSUserDefaults StanderUserDefaults];
NSMutableArray *yourimgarry=[def valueForKey:@"ImageArray"];