4

2 つの質問があります。

1. 最初の質問:

私のプロジェクトには、2 つの異なるストーリーボード ファイルがあります:A storyboardB storyboard.

nsstringデータ ( ) を から (A) controller of (A) storyboardに 渡したい(B) controller of (B) storyboard

どうやって作るの?

2. 2 番目の質問:

2 番目のストーリーボードには、セグエでチェーンされた 2 つのコントローラーがあります。

この命令を使用してコードでセグエを呼び出すと、次のようになります。

[self.navigation controller performSegueWithIdentifier: @"secondViewSegue" sender:self];

メッセージがあります:"has no segue with identifier 'secondViewSegue' "

なんで?

4

2 に答える 2

4

1/ これを行う良い方法は、両方の場所から等しくアドレス指定できる別のモデル オブジェクトを作成することです。これを行う最も簡単な方法は、ファイルのセクションにプロパティを追加することです。@interfaceAppDelegate.h

  @property (nonatomic, strong) NSString* sharedString;

設定して取得するには、AppDelegate への型指定されたアクセスを必要なファイルに追加する必要があります。

  #include AppDelegate.h

次に、使用できます...

  AppDelegate* appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];

  //to set (eg in A controller)
  appDelegate.sharedString = string;

  //to get (eg in B controller)
  NSString* string = appDelegate.sharedString;  

プロパティの代わりに、ヘッダー ファイルで静的変数を使用できます。

 static NSString* staticString;

#importsこれは、ヘッダー ファイルの任意のオブジェクトにアクセスできます。ただし、実際にはObjective-Cの方法ではありません。

より複雑なケースでは、シングルトン オブジェクトを作成してモデル データにアクセスすることができます。

2/ 試してみてください:

  [self performSegueWithIdentifier: @"secondViewSegue" sender:self];

Segue が Navigation Controller ではなく、viewController から配線されていることを確認してください。

于 2013-03-17T20:17:02.023 に答える