0

このメイン メニュー ビュー コントローラーがあります。これは、ストーリーボードでセグエを挟んで 2 回定義するのではなく、pushViewController独自のクラスの新しいインスタンスを呼び出します。だからそうなるのです:

menu_a --> menu_a --> option_x

それよりも

menu_a --> menu_b --> option_x

ビュー コントローラを 1 回押した後navigationController、関連付けられているセグエを追跡できなくなり、「レシーバに識別子を持つセグエがありません」というメッセージが表示されます。あれは、

menu_a --> option_y

この種のエラーは決して発生しません。

過去 3 時間、Google で Stack Overflow を検索しましたが、うまくいきませんでした。誰かが同じことを試して、回避策を詳しく説明してくれることを願っています。

4

1 に答える 1

0

これが機能することは保証できませんが、次のようになります。

おそらく、セグエはストーリーボードの機能であるため、 performSegue を呼び出すと、ストーリーボードによってインスタンス化された ViewController が参照されます。この質問で説明されているように、ストーリーボードを手動で作成するのではなく、それ自体から新しい ViewController をインスタンス化するように要求することができます (これはあなたが行っていると思います)。

UIStoryboard* storyboard = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
UIViewController* dest = [storyboard instantiateViewControllerWithIdentifier:@"CustomController"];

この方法で作成された ViewController からセグエを試みると、同じセグエ情報が関連付けられているはずですが、手動で作成されたセグエ情報は関連付けられていないため、運が良い場合があります)。それは単なる理論です-うまくいくかどうか教えてください:)

于 2012-09-11T11:55:01.967 に答える