如何从其他视图更改MutableArray?

时间:2012-07-04 11:50:58

标签: iphone objective-c ios cocoa-touch ios4

在我的申请中,

有两种不同的观点 ItemList ItemSearch

在ItemList文件中,我有一个名为NsMutableArray的{​​{1}}。我希望从tblItem页面的tblitem传递数据。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

您可以按如下方式使用属性:

1.在tblItem的ItemList.h中创建一个属性为

@property(nonatomic, retain) NSMutableArray *tblItem;

然后在ItemList.m中合成它,

@synthesize tblItem;

当您从ItemSearch导航到ItemList时,即在初始化ItemList时,只需提供tblItem所需的值,

ItemListObj.tblItem = theSearchedArray;

答案 1 :(得分:1)

在SecondViewController中将NSMutableArray声明为属性,并在从FirstViewController推送或呈现SecondViewController时分配数组。

@interface SecondViewController : UIViewController
{
    NSMutableArray    *aryFromFirstViewController;
}

@property (nonatomic,retain) NSMutableArray  *aryFromFirstViewController;


@end

在实现中,合成属性

@implementation SecondViewController

@synthesize aryFromFirstViewController;

@end

在FirstViewController的标题处导入SecondViewController

#import "SecondViewController.h"

在FirstViewController的实现中,在下面编写代码的位置添加代码以呈现或推送SecondViewController

@implementation FirstViewController


- (void) functionForPushingTheSecondViewController
{
     SecondViewController *objSecondViewController = [[SecondViewController alloc] initWithNIBName: @"SecondViewController" bundle: nil];
     objSecondViewController.aryFromFirstViewController = self.myAryToPass;
     [self.navigationController pushViewController:objSecondViewController animated: YES];
     [objSecondViewController release];
}

@end 

请不要忘记在aryFromFirstViewController方法中释放dealloc SecondViewController,否则会因为我们保留它而泄漏。如果我知道这对你有所帮助,我会感觉很好。享受。

答案 2 :(得分:0)

这取决于您的需要。您可以使用Singleton类在不同类之间共享变量。定义要在DataClass中共享的所有变量。

<。>在.h文件中(其中RootViewController是我的DataClass,用新类替换名称)

+(RootViewController*)sharedFirstViewController; 
<。>文件中的

//make the class singleton:-    
+(RootViewController*)sharedFirstViewController    
{    
@synchronized([RootViewController class])
 {
    if (!_sharedFirstViewController)
        [[self alloc] init];

    return _sharedFirstViewController;
}

return nil;
}


+(id)alloc
{
@synchronized([RootViewController class])
{
    NSAssert(_sharedFirstViewController == nil, 
             @"Attempted to allocate a second instance of a singleton.");
    _sharedFirstViewController = [super alloc];
    return _sharedFirstViewController; 
}
return nil;
}

-(id)init {
self = [super init];
if (self != nil) {
    // initialize stuff here
}
return self;
}

之后你可以在任何其他类中使用你的变量

[RootViewController sharedFirstViewController].variable

希望它对你有所帮助:)。