如何使用UITableViewDelegate.AccessoryButtonTapped(使用Monotouch)

时间:2011-07-09 21:13:20

标签: xamarin.ios monotouch.dialog

我正在使用C#,Mono develop和Monotouch创建一个IPad应用程序。

我一直在使用Monotouch.Dialog来创建类似于iPhone上的wifi设置的功能。我正在使用StyledStringElement和附件,我现在正试图区分点击行和点击DetailDisclosureButton。

我发现我应该覆盖UITableView上的UITableViewDelegate.AccessoryButtonTapped。我试图从UITableViewDelegate创建一个派生类,并将其挂钩到Monotouch.Dialog中。但这就是我陷入困境的地方。我没有设法用我的扩展版本替换现有的UITableViewDelegate。

所以我的问题是:

  1. 这是处理此事件的首选方式(能够区分元素上的点击和DetailDisclosureButton上的点按)吗?

  2. 如果没有,是否有关于如何完成此任务的指针?

  3. 我一直在网上搜索(类似)示例,但还没有找到。你知道的任何例子都可以让我开始吗?

  4. 谢谢,

    鲍里斯

1 个答案:

答案 0 :(得分:2)

event EventHandler accessoryPushed;
public override void AccessoryButtonTapped (UITableView tableView, NSIndexPath indexPath)
{
if(!accessoryPushed)
{
    accessoryPushed(this,EventArgs.Empty);
}


}

您需要将此添加到您正在使用的DailogViewController代码中(这将覆盖点击操作)。您可能希望触发事件而不是简单的函数,因此只需处理主代码中的事件即可。这可能是你最好的选择。

更改此行后,您必须实现AccessorySelected等新功能(只需模仿选择行时代码所遵循的路径,但附件除外)。

另一方面,您可以尝试不同的导航方法,通常公开按钮很烦人,除了获取有关按钮的简单信息(如帮助功能)之外,您不想点击它们。

我还没有找到任何其他例子,对不起!