Выбор UITableView изменил событие в Monotouch - PullRequest
4 голосов
/ 14 апреля 2011

Я создал собственную иерархию представлений, где-то в этой иерархии есть UITableView с выходом под названием TableView, поэтому я могу получить его из кода бэкэнда.

Я хочу создать и выдвинуть новыйпросмотр стека представлений корневого viewcontroller при выборе элемента в этом списке, но я не могу найти какие-либо соответствующие события в UITableView.

Все элементы управления были определены с помощью построителя интерфейса в файлах .XIB

Я смотрю не в том месте?

спасибо заранее.

Ответы [ 2 ]

10 голосов
/ 14 апреля 2011

Да, вы смотрите не в том месте. Чтобы использовать «события» 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();

Обратите внимание, что класс UITableViewSource не существует в Objective-C. Это просто класс MonoTouch, в котором размещены методы как UITableViewDataSource, так и UITableViewDelegate, что значительно упрощает процесс.

1 голос
/ 14 апреля 2011

Событие RowSelected происходит в UITableViewSource.

...