0

3 つのビュー コントローラーと 1 つのナビゲーション ビュー コントローラーを含むタブ バー コントローラーがあります。そのナビゲーション ビュー コントローラーには、テーブル ビュー コントローラーと詳細ビューがあります。

私の最初のView Controller(最初のタブ)には3つのボタンがあります。最初のボタンで詳細ビューをナビゲーション コントローラーにロードします。(下の画像に見られるように)

絵コンテ

どうすればこれを達成できますか?

LocationsTableViewController でセグエを実行するメソッドを呼び出してみましたが、「Receiver () には識別子 'addLocation' のセグエがありません」というエラーが表示されます。セグエ「addLocation」は確かに存在しますが。

StartViewController のボタンに接続されたメソッド:

- (IBAction)addLocationView:(id)sender {

    LocationsTableViewController *LTVC = [[LocationsTableViewController alloc] init];
    [LTVC addLocation];

}

LocationsTableViewController:

-(void)addLocation
{
    [self performSegueWithIdentifier: @"addLocation" sender: self];
}
4

1 に答える 1

0

「addLocation」セグエは Locations Table View Controller から Add Location View Controller へのものであるため、セグエは LocationsTableViewController に存在します。それは正しいです。ただし、現在のビュー コントローラーが LocationsTableViewController でない場合、そのセグエを呼び出す意味はありません。

いくつかのオプションがあります:

  1. ストーリーボード オプション #1: StartViewController から AddLocationViewController への新しいセグエを作成し、そのセグエを で実行しaddLocationView:ます。
  2. ストーリーボード オプション #2: ボタンから AddLocationViewController への新しいセグエを作成し、IBAction. ボタンがクリックされると、ストーリーボードはそのセグエを自動的に呼び出します。
  3. プログラムによるオプション: 新しい AddLocationViewController をインスタンス化し、ナビゲーション スタックにプッシュします: [self.navigationController pushViewController:[[AddLocationViewController alloc] init] animated:YES].
于 2013-10-04T17:18:17.363 に答える