1

Xamarin.IOS/Monotouch の次の状況が適用されます。

  • VCOne と VCTwo の 2 つのビュー コントローラーを使用しており、XCode のストーリーボード エディター (MYVCOneClass と MyVCTwoClass) で 2 つのカスタム クラスを割り当てています。
  • 次に、セグエを VCOne から (左側のリストのビューコントローラーから) エディター パーツの VCTwo ビューコントローラー インスタンスにドラッグし、[プッシュ] を選択します。
  • 私はセグエを「OneToTwoSegue」と名付けました。

私の質問

VCOne クラスのボタン クリック イベント ハンドラから次の呼び出しを実行すると、次のようになります。

this.performSegue("OneToTwoSegue", this);

MyVCOneClass オブジェクトで OneToTwoSegue が見つからないという実行時エラーが発生します。

このようなコードからこのセグエを呼び出すことができない理由を誰かが知っていますか? セグエをセルやボタンなどにリンクすると、セグエが機能するのを見たことがあります...

4

1 に答える 1

5

「プッシュ」セグエを実行している場合、最初のビュー コントローラーは UINavigationController のルート ビュー コントローラーである必要があります。

したがって、ストーリーボードで UINavigationController をドラッグ アンド ドロップし、デフォルトでアタッチされている tableview と ViewController を削除してから、VCOne をルート ビュー コントローラーにします (セグエを作成するのと同じ方法で、コントロールを押したまま UINavigationController から UIViewController にドラッグします)。次に、ルート ビュー コントローラーをクリックします。

あなたのセグエはその後うまくいくはずです。UINavigationController が最初の画面として設定されていることを確認してください (左を指す小さな矢印を VCOne から UINavigationController に移動する必要があります)。

編集: これを説明するために作成したサンプル ストーリーボードのスクリーンショットをアップロードしました。VCOne は、ナビゲーション コントローラーのルート ビュー コントローラーです。そして、OneToTwoSegue と呼ばれる VCOne から VCTwo へのセグエがあります。これにより、ボタンクリック時のコードが完全に機能します。 セグエ ストーリーボード

于 2013-06-24T11:53:28.870 に答える