-1

在我的应用程序中,

有两个不同的视图ItemListItemSearch

在 ItemList 文件中,我有一个NsMutableArrayname tblItem。我想tblitemItemsearch页面传入数据。

我怎样才能做到这一点?

4

3 回答 3

1

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

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

@property(nonatomic, retain) NSMutableArray *tblItem;

然后在ItemList.m中合成,

@synthesize tblItem;

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

ItemListObj.tblItem = theSearchedArray;
于 2012-07-04T11:55:58.407 回答
1

将 NSMutableArray 声明为 SecondViewController 中的属性,并在您从 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 

请不要忘记释放 SecondViewController 的aryFromFirstViewControlleratdealloc方法,否则会因为我们保留它而泄漏。如果我知道这在某种程度上对您有所帮助,我会感觉很好。享受。

于 2012-07-04T12:08:22.170 回答
0

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

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

+(RootViewController*)sharedFirstViewController; 

在 .m 文件中

//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

希望对你有帮助:)

于 2012-07-04T12:01:24.680 回答