私のアプリケーションでは、
ItemListとItemSearchの 2 つの異なるビューがあります。
ItemList ファイルにはNsMutableArray
、 nameのファイルがありますtblItem
。tblitem
ページからデータを渡したいItemsearch
。
これどうやってするの?
私のアプリケーションでは、
ItemListとItemSearchの 2 つの異なるビューがあります。
ItemList ファイルにはNsMutableArray
、 nameのファイルがありますtblItem
。tblitem
ページからデータを渡したいItemsearch
。
これどうやってするの?
次のようにプロパティを使用できます。
1.tblItemのItemList.hにプロパティを作成し、
@property(nonatomic, retain) NSMutableArray *tblItem;
それを ItemList.m で合成し、
@synthesize tblItem;
ItemSearch から ItemList に移動する場合、つまり ItemList を初期化する場合は、tblItem に必要な値を次のように指定するだけです。
ItemListObj.tblItem = theSearchedArray;
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のaryFromFirstViewController
atメソッドを解放することを忘れないでください。そうしないと、保持しているためリークします。dealloc
これが何らかの形であなたを助けたと知ったら、私は気分がいい. 楽しみ。
それはあなたの必要性に依存します。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
それがあなたを助けることを願っています:)