2017-08-22 17 views
0

RowSelectedの中にどの行のコードを入れる必要がありますか?C#(Xamarin iOS)UITableViewから他のViewControllerに移動するには?

私は既にこれを使用しましたが、運は全くありません。

public override void RowSelected(UITableView tableView, NSIndexPath indexPath) 
{ 
    var window = UIApplication.SharedApplication.KeyWindow; 
    var vc = window.RootViewController; 
    while (vc.PresentedViewController != null) 
    { 
     vc = vc.PresentedViewController; 
    } 
    mainnearmisses myTarget = (UIViewController)vc.Storyboard.InstantiateViewController("mnearm") as mainnearmisses; 
    myTarget.email = locations[indexPath.Row].shopname + ""; 
    vc.PresentViewController(myTarget, true, null); 
} 
+0

何が問題ですか?それはクラッシュしたのですか、何も起こりませんでしたか? –

+0

ええ、それはクラッシュしました。どんなアイデア? –

+0

クラッシュ情報は何ですか –

答えて

0

いくつかの提案があります。

1. DataSourceの初期化コンストラクタで、ViewController自体をパラメータとして設定します。これは別のVCへのナビゲーションへあなたのコードを簡単に作ることができるのdataSource

ViewController owner; 
public TableSource (string[] items, ViewController owner) 
{ 
    tableItems = items; 
    this.owner = owner; 
} 

のViewControllerで

this.TableView.Source = new TableSource(tableItems.ToArray(), this); 

。 Windows上で現在のvcを探す代わりにこれを使用してください。

this.owner.PresentViewController(myTarget, true, null); 

2.あなたのtableViewが画面いっぱいにする場合は、のUITableViewControllerにあなたのViewControllerを変更することができます。

フォームIUITableViewDataSourceを継承しているため、独自のクラスでイベント(つまり、そのメソッドがtableViewを作成する)を処理できます。私は上記の

3.As、それのViewControllerが

が存在するかどうかを確認ストーリーボードIDを確認し、あなたのプロジェクトに対応するのViewControllerを見つけます。

+0

あなたの直ちに、論理的な応答Mr.Cole夏ありがとう:) –

関連する問題