0

まだ iPhone のプログラミングを把握しようとしていて、問題に遭遇しました。選択/クリックされた各セルのテキスト値を格納するクラス内に NSMutableArray があります。別のビューでは、以前に形成された配列を別のテーブル ビューに入力したいと思います。ただし、View2 からこの配列 (View1 のプロパティ) にアクセスするにはどうすればよいですか。

別のビューに移動した場合、配列は引き続き文字列で満たされますか? それとも、永続性を維持するために、これらの行に沿って sqlLite DB または何かが必要ですか?

View1 の配列の内容で別の NSMutableArray を初期化しようとしましたが、これは正しくないようです。

//View2.h
- (void)viewDidLoad {
    [super viewDidLoad];

    NSMutableArray *savedExercise = [Create workout];
}

どんな助けでも大歓迎です。

4

3 に答える 3

0

View1のインスタンス変数「workout」のgetter(および必要に応じてsetter)メソッドを作成する必要があります。これを行うには、Objective-Cの@property機能を使用できます。

次に、View2のView1のインスタンスにアクセスして、へのポインタを取得しますworkout

より良い方法は、シングルトンの「データマネージャー」を作成し、(チャットで説明したように)sharedInstanceメソッドを介してそれにアクセスすることです。その後、データはそのインスタンスによって完全に管理され、そのsharedInstanceと「通信」することで、アプリのどの部分からでもいつでもアクセスできます。

于 2012-04-09T20:05:24.107 に答える
0

view1からview2を作成する場合、一般的なパターンは別のinitメソッドを作成することです。したがって、view 2を作成するときは、

view2 = [[View2 alloc] initWithData:data];

ここで、データは配列です。

View2では、

-(id)initWithData:(NSArray*)_data{
    self = [super init];
    if(self){
        dataProperty = _data;
    }
    return self;
}

ここで、dataPropertyはView2のプロパティです。

于 2012-04-09T20:01:47.990 に答える
0

アプリがiOS5固有であり、View1からView2に移動する場合は、seguesとprepareForSegueを使用してデータを渡すことができます。

を使用してsegueを呼び出し、performSegueWithIdentifier:sender:prepareForSegueメソッドで次のような操作を行うことができ[segue.destinationViewController setArray:###pass array here###]ます。View2ControllerのヘッダーにsetArray(または名前を付けたいもの)と呼ばれるセッターを持つプロパティが必要です。

于 2012-04-09T20:08:37.517 に答える