0

ストーリーボードを使用してマスター/詳細テーブルを作成しました (以下のセットアップの概要画像)。ナビゲーション コントローラーの操作がうまくできていませんが、残念ながらやりすぎてしまいました。関連する場合、私は iOS 6 で実行しています。

私の問題は、マスター ビューの [追加] ボタン (セグエ コードを介して動作) を介してマスター ビューから詳細ビューに移動するときに、[完了] ボタンのコードが正常にマスター ビューに戻ることです。ただし、( didSelectRowAtIndexPathを介して) セルをクリックして詳細ビューに移動した場合、「完了」をクリックすると、ストーリーボードをインスタンス化してプッシュしたビューに戻ります。

didSelectRowAtIndexPath:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  {
     DetailsViewController *detailView = [self.storyboard instantiateViewControllerWithIdentifier:@"AddDetails"];
    [self.navigationController pushViewController:detailView animated:YES];
  }

マスター テーブル ビューに戻るために思いついたことはすべて試しましたが、何もうまくいきません。私が試してみました:

   [self.navigationController popViewControllerAnimated:YES];

   [self dismissViewControllerAnimated:YES completion:nil];

   MasterViewController *masterView = [self.storyboard instantiateViewControllerWithIdentifier:@"masterView"];
   [self.navigationController pushViewController:masterView animated:YES];

これが私のストーリーボード設定の画像です:

ここに画像の説明を入力

4

2 に答える 2

0

コントローラーの非常に奇妙な配置をしているようです。特に、2 つのナビゲーション コントローラーがあります。

マスターをルート コントローラーとして単一のナビゲーション コントローラーを使用した広告配置をお勧めします。マスター コントローラーからディテール コントローラーに移行するときは、同じナビゲーション コントローラーで行います。お役に立てれば。

于 2012-11-05T00:00:47.993 に答える
0

popViewController は、詳細ビューとナビゲーション コントローラーを使用する場合に行う適切な呼び出しです。それが機能しない場合は、ナビゲーション コントローラーを使用してプッシュすることに成功したため、何かがひどく間違っています。

基本的に、ポップを実行するときは、プッシュに使用したのと同じナビゲーション コントローラーにアクセスできる必要があります。その詳細ビューでカスタム ナビゲーション コントローラー プロパティを設定し、プッシュ時に割り当てることを検討することもできます。その後、それを使用してポップすることもできます。

于 2012-11-05T00:05:07.737 に答える