私は2日間対象をcにしています。これは恐ろしい質問であれば謝ります。だから本質的に私はストーリーボードを使ってiPhoneアプリを作っています。私のビューの1つのセルは、HTTPリクエストを介してjson形式で表示するものを取得することに基づいて動的に作成されます。これらのセルの1つが選択されると、ビューが表示される必要があります。これは、各セルの同じビューです(Segueの質問ではありません)。このビューは、どのセルが選択されているか(およびそれだけでなく、ユーザーに表示されないjsonの他の情報)に依存します。したがって、NSDictionaryを子ビューに渡す必要があります。私はこれが自明だと確信していますが、私は解決策を見つけませんでした。助けを前にありがとう。NSDictionaryを親ビューから子ビューに渡す(最新のxcode)
答えて
ティムは、あなたが、あなたの辞書オブジェクトのプロパティを宣言したと同じように親VCのコードファイル(.mファイル)に、あなたは:
#import "ChildViewController.h" // Replace that with the name of the class for your child VC
とprepareForSeque方法でこれを実行します。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure we are dealing with the proper Segue
if ([segue.identifier isEqualToString:@"mySegueID"]) // ALWAYS use identifiers for your Segues
{
// Setup the destination ViewController
ChildViewController *cvc = segue.destinationViewController;
// Set the dictionary object property on the ChildViewController
cvc.myDict = TheDictionaryObjectYouWantToPass;
}
}
は、これはストーリーボードを使用してオブジェクトを渡す方法です。あなたがSegueを持っているときに呼び出されるメソッドは、このprepareForSegueメソッドです。これは、オブジェクトを渡す場所で、デスティネーションビューコントローラの設定に関連する操作を行います
プロパティを使用します。プロパティは外部的に公開されるクラスの値です。それらは設定または読み取ることができます。プロパティを定義すると、Xcodeはセッターとゲッターを合成します。すなわち、retain
クラスが保持することを意味するクラスを使用して、クラスに自動的に-(type)variable
とsetVariable:(type)
メソッドが作成されます。assign
ではなくその上にハングアップする、とnonatomic
は、それが代わりにメモリの別の部分に新しい値をコピーし、それが行われた後にのみ参照が更新の代わりにそれを更新することを意味します。 nonatomic
は、一般的に、それはatomic
よりも高速であるとして、スレッドの安全性は、懸念の少ない用途に使用されているが、それはスレッドセーフではありません。あなたの子ビューのヘッダで
:あなたの親ビューの方法で
@property (nonatomic, retain) NSDictionary* myDict;
子ビューを提示
// ... code which allocs child view here...
[childView setMyDict:theDict];
// ... code which presents child view here...
私はストーリーボードを使用しているので、子ビューを割り当てるコードはありませんか?私が編集しているコード。 – user1170665
ElJayの答えを参照してください。 – Tim
Dear Tim、w.r.t.あなたの答えセグメント - *とnonatomicいくつかのバロニー誰もどこで動作するか知っているが、それはスレッドロックの同期と関係がある。 - * これには、スレッド同期と関係があります。リンクを参照してくださいます。http:?//webcache.googleusercontent.com/search Q =キャッシュ:QhnQmTk3rQIJます:http://stackoverflow.com/questions/588866/atomic-vs-nonatomic-properties%2Bdeveloper.apple+:+ iphone + nonatomic&oe = utf-8&rls = org.mozilla%3Aen-US%3A公認&クライアント= firefox-a&gs_l = heirloom-serp.3 ... 5527.10398.0.10658.30.26.0.1.0.4.315.3136.11j7j4j3.25.0 ... 0.0 ... 1ac.1.iYOL3a6g7To&HL = EN&CT = clnk –
他の場所でのデータの損失を避けるためにプロパティが 'retain'または' copy'であることを確認してください –