私はネイティブobjective-CアプリケーションをMonoTouchソリューションに移植します。MonoTouchスタティック・セルを持つUITableViewControllerのRowSelectedを実装する方法
私のストーリーボードには、静的なテーブルセルを持つテーブルビューがあります。テーブルからの選択を受けた
- (void) tableView:(UITableView *) aTableView didSelectRowAtIndexPath:(NSIndexPath *) indexPath
{ // remove the row highlight
[aTableView deselectRowAtIndexPath:indexPath animated:YES];
switch(indexPath.row) {
case 0: [self callWebsite]; break;
case 1: [self sendEmail]; break;
case 2: [self makePhoneCall]; break;
}
return;
}
は、今私はMonoTouchでで同じことをやってみたいが、どのようにして、私はネット上で見つけるすべての例を見つけることができません、次のObjective-Cのコードを使用して
DataSourceとUITableViewDelegateを使用しています。
しかし、このアプローチを使用すると、「静的」なセルが削除され、置き換えられます。
これは私が
public partial class ContactViewController : UITableViewController
{
public ContactViewController (IntPtr handle) : base (handle)
{
this.TableView.Delegate = new CustomTableViewDelegate();
}
}
public class CustomTableViewDelegate : UITableViewDelegate
{
public override void RowSelected (UITableView tableView, NSIndexPath indexPath)
{
// Remove the row highlight
RowDeselected(tableView, indexPath);
/*
// Is this section our "button" section?
switch(indexPath.row) {
case 0: [self callWebsite]; break;
case 1: [self sendEmail]; break;
case 2: [self makePhoneCall]; break;
}
*/
Console.WriteLine("Do something meaningfull.");
}
}
誰かどんな提案をしようとしている何ですか?
を私のパラメータを持っていない可能性があり、
TableView.WeakDelegate = this;
がそれを周りの再生設定しましたかなり後に、どのようにあなたの細胞が削除されますか? 貼り付けられたコードは、セルが選択されたときのアクションのためのもので、コメントのあるコードがあります。なぜコメントしましたか? –
コメントアウトされたコードは、私がC#に翻訳していたので、私のobjective-cコードのコピー貼りです。この問題は重要ではありません。なぜ細胞が除去されたのか分かりません。コードからテーブルを作成するときに使用する 'numberOfRowsInSection'と 'cellForRowAtIndexPath'メソッドの実装がないためだと思います。静的ではない...「私が思う...」 – user1346056