-1

私のアプリケーションでは、

ItemListItemSearchの 2 つの異なるビューがあります。

ItemList ファイルにはNsMutableArray、 nameのファイルがありますtblItemtblitemページからデータを渡したいItemsearch

これどうやってするの?

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のaryFromFirstViewControlleratメソッドを解放することを忘れないでください。そうしないと、保持しているためリークします。deallocこれが何らかの形であなたを助けたと知ったら、私は気分がいい. 楽しみ。

于 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 に答える