В выбранной таблице tableview выбрана загрузка класса DetailViewcontroller.
public override void RowSelected (UITableView tableView, NSIndexPath indexPath)
{
if (OnRowSelected != null) {
OnRowSelected (this, new RowSelectedEventArgs (tableView, indexPath));
}
var detailController = new DetailViewController ();
UINavigationController controller = new UINavigationController();
controller.PushViewController(detailController, true);
}
Не удалось загрузить DetailViewController.
public override void RowSelected (UITableView tableView, NSIndexPath indexPath)
метод находится в UITableViewSource
Есть ли способ загрузить DetailViewController в rowSelected.
Когда вы создаете таблицу, вам нужно разместить ее в контексте контроллера навигации.
UINavigationController nav = новый UINavigationController (myTableViewController);
Затем, когда вы хотите отобразить свой DetailViewController, вы можете нажать его на уже существующий навигационный контроллер. Однако по умолчанию ваш TableSource не имеет доступа к NavigationController - вам нужно будет передать ссылку на ваш контроллер TableView при создании TableSource, чтобы TableSource мог получить доступ к NavigationController:
// in your controller, when you assign the source
this.TableView.Source = new MyTableViewSource(this);
// in your source, keep a class level ref to the parent
MyTableViewController _parent;
// your Source constructor
public MyTableViewSource(MyTableViewController parent) {
_parent = parent;
}
// finally, in your RowSelected use the _parent reference to access the Nav controller
var detailController = new DetailViewController ();
_parent.NavigationController.PushViewController(detailController, true);
UINavigationController
?