2016-07-08 7 views
0

UITableViewControllerからUIViewControllerにナビゲートする際に問題が発生しています。Xamarin iOS PrepareForSegueが呼び出されない

私がやっていることは、ユーザーがSAP内の部品を検索して単純な表に表示できるアプリケーションを作成することです。ユーザーが1つの行をクリックすると、詳細ページが開きます。

残念ながら、ナビゲーションが機能していないため、わかりません。私は、UINavigationController - > UITableViewController - > UIViewControllerを含むストーリーボードを使用しています。

Visual Studio 2015 Designer内のコントロールキーを押し、TableCellからUIViewControllerに線を引いて、私のUITableViewControllerから詳細ページ(UIViewController)にセグを設定しました。私はテーブルのセルが太った青色の境界を取得することを確認します。

この後、セグ識別子を「PartDetailSegue」に設定します。私のUITableViewControllerでは、PrepareForSegue関数を上書きしました。

PrepareForSegue関数にブレークポイントを追加してアプリケーションを起動すると、テーブルセルをクリックしても関数が呼び出されません。私は行方不明のものはありますか?

Xamarin Designer Views

コード私UITableViewContoller

public override void PrepareForSegue(UIStoryboardSegue segue, NSObject sender) 
     { 
      if (segue.Identifier == "PartDetailSegue") 
      { 
       var navctlr = segue.DestinationViewController as PartDetailViewcontroller; 
       if (navctlr != null) 
       { 
        var rowPath = TableView.IndexPathForSelectedRow; 
        var item = ((PartsTableViewDataSource)TableView.Source).GetItem(rowPath.Row); 
        navctlr.SetPart(this, item); 
       } 
      } 
     }   

に私はXamarinのための2015年の更新3.最新のアップデートがインストールされているのVisual Studioを使用しています。

+0

セグが起こっていますか(UIViewControllerがプッシュされますか?)そうでない場合は、 'RowSelected'をオーバーライドして手動で起動させ、' this.PerformSegue( "PartDetailSegue"、this);を呼び出してセグを起動し、セグが正しく機能するかどうかを確認します。 ( 'this'は' UITableViewController'インスタンスになります)。ストーリーボードで何かが正しく設定されていないと思います。 – dylansturg

+0

あなたのお返事ありがとうございます!私がthis.PerformSegue( "PartDetailSegue"、this)を介して呼び出すと、sequeが起きています。私はすでに結婚しています。だからセークは正しく設定されているようです。私のstwwboard上でUITableViewControllerは、UITableViewControllerを継承し、PrepareForSeque関数をオーバーライドする私自身のクラスにリンクされています。 seque識別子も設定されます。 –

+0

私はストーリーボードでXamarin Studioを使用してこれを試しましたが、すべて期待通りに機能しました。だから、VSは** VSで動作するはずです。あなたは "セレクション・セグ" "ショー"オプションを選択したことは確かですか? Xamarin Studioでセグを作成し、VSにバグがあるかどうかを確認することができます。 – dylansturg

答えて

1

UITableViewSourceを使用し、DequeueReusableCell( "SomeName")を使用してGetCell関数でセルを作成する場合は、ストーリーボードでプロトタイプテーブルビューセルが同じ識別子を設定していることを確認してください。その他のDequeueReusableCellでは、プロトタイプセルのテンプレートを返しません。これは、セグを認識しています。

関連する問題