无法从xamarin中的tableviewrowselected加载ViewController

本文关键字:tableviewrowselected 加载 ViewController 中的 xamarin | 更新日期: 2023-09-27 18:16:09

在选定的tableviewrowselected上加载一个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

有没有办法在rowSelected.

无法从xamarin中的tableviewrowselected加载ViewController

上加载DetailViewController ?

创建表时,需要将其放在Navigation控制器的上下文中。

UINavigationController nav = new UINavigationController(myTableViewController);

然后,当你想要显示你的DetailViewController时,你可以把它推送到已经存在的导航控制器上。然而,默认情况下,你的TableSource不能访问NavigationController——当你创建TableSource时,你需要给TableView控制器传递一个引用,这样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's 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);
相关文章:
  • 没有找到相关文章