UITableView选择在Monotouch中更改了事件

时间:2011-04-14 15:36:22

标签: iphone ios xamarin.ios xib

我创建了一个自定义视图层次结构,这个层次结构中的某个地方是一个UITableView,有一个名为TableView的插座,所以我可以从后端代码到达它。

我想在选择该列表中的项目时创建并将新视图推送到根视图控制器的视图堆栈,但我在UITableView上找不到任何相关事件。

所有控件都是使用.XIB文件中的“接口”构建器

定义的

我在找错了地方吗?

提前感谢。

2 个答案:

答案 0 :(得分:10)

是的,你在找错了地方。要使用UITableView的“事件”,您必须实现UITableViewSource并将其分配给表视图。最常见的方法是在表视图的控制器中作为嵌套类:

private class MyTableSource : UITableViewSource
{

    public override void RowSelected(UITableView tableView, NSIndexPath indexPath)
    {

        // Do something for the selected row

    }

    // Override both RowsInSection and GetCell methods!

}

然后将MyTableSource类设置为表视图的Source属性:

myTableView.Source = new MyTableSource();

请注意,Objective-C中不存在UITableViewSource类。它只是一个MonoTouch类,它同时托管UITableViewDataSource和UITableViewDelegate的方法,使事情变得更加简单。

答案 1 :(得分:1)

RowSelected事件发生在UITableViewSource中。