gpt4 book ai didi

uitableview - MonoTouch 如何为带有静态单元格的 UITableViewController 实现 RowSelected

转载 作者:行者123 更新时间:2023-12-04 02:37:32 24 4
gpt4 key购买 nike

我正在将原生 Objective-C 应用程序移植到 Monotouch 解决方案。

我的 Storyboard中有一个 tableview,带有一些静态表格单元格。

使用以下objective-c 代码从表中收到一个选择

- (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 中做同样的事情,但无法找出我在网上找到的所有示例如何使用 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.");
}
}

有人有什么建议吗?

最佳答案

我认为你应该尝试使用 WeakDelegate使这项工作。

在您的 Controller 中连接方法,如下所示:

[Export("tableView:didSelectRowAtIndexPath:")]
public void RowSelected (UITableView tableView, NSIndexPath indexPath)
{
//Your code here
}

然后设置 TableView.WeakDelegate = this;
玩弄它,我的参数可能不完全正确,等等。

关于uitableview - MonoTouch 如何为带有静态单元格的 UITableViewController 实现 RowSelected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10276764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com