0

JSON ファイルに基づいて ViewController を動的に作成するプロジェクトをセットアップしようとしています。先日こちらの作り方について質問させていただきました

xCode ViewController を動的に作成する

そのため、ViewController を動的に作成することができました。さらにいろいろ試してみたところ、非常に簡単にセットアップできたので、アプリが読み込まれると、JSON で指定された ViewController の数が生成されます。それらの間を簡単にナビゲートすることもでき、JSON から各画面にボタンやビューなどを設定することもできます。私はこれを単に行うことで行います

NSDictionary *MainJSON = [sJson JSONValue];
NSArray *theArray = [MainJSON valueForKey:@"viewControllers"];

次に、ViewController インスタンスを作成する theArray をループします。

私の問題は、ViewController 間でデータを受け渡しできるようにしたいということです。たとえば、JSON で設定して、最初の ViewController にテキスト フィールドがあるとします。ユーザーはいくつかのデータを入力し、次の画面に移動したときにそのデータが次の画面に運ばれるように設定できるようにしたいと考えています。私は現在、このように画面を切り替えます

-(void)nextScreen
{
    for(int i = 0; i < [vcArray count]; i++)
    {
        int iID = i+1;
        if([self.navigationController.viewControllers count] == iID)
        {
            ViewController *theVC = [vcArray objectAtIndex:i];

            [self.navigationController pushViewController:theVC animated:YES];
            break;
        }
    }
}

現在、通常、各ViewControllerにはクラスがあるため、プッシュしているViewControllerで、そのクラスでプロパティを実行してNSStringを合成できるため、次のViewControllerにデータを渡すときに、これを行うだけです。

vc.theString = textField.text

しかし、これらのViewControllerを動的に生成しているため、.hおよび.mファイルを1つしか使用しておらず、生成した各ViewControllerが同じXIBファイルを使用しているため、これを行うことはできません。この設定でデータを渡す方法について誰か考えがありますか?

4

2 に答える 2

1

問題が同じView Controllerに異なるxibが必要な場合は、メインのiOSアプリでそれらすべてを提供できます。後でJSONでxib名を渡すことで、そのxibをインスタンス化してコントローラーに割り当てることができます。

名前がわからない UIView オブジェクトも呼び出す必要がある場合は、JSON に保存されているタグ属性をいつでも使用できます。おそらく、「UILabel」、「UITextView」、ecc などの UIView タイプを保存し、値の適切なセッターを呼び出すこともできます。

于 2012-06-27T11:58:37.153 に答える
0

理解した。各ビューにJSONのタグを付けると、必要なオブジェクトを簡単に接続できます。

于 2012-06-27T11:25:18.263 に答える