如何将数据从 xamarin.ios uitableview 发送回主页?

How do I send data back to main page from xamarin.ios uitableview?

我是 Xamarin.iOS 的新手。如果我的问题有误,请原谅我。在我的项目中,我在上传页面上有一个按钮。如果用户单击该按钮,它将转到 UITableView 页面。然后,用户可以 select 中的一行 table。然后,它返回到上传页面。我不知道如何将 selected table 行值从 UITableView 获取到上传页面。请指导我。到目前为止,这是我的代码:

public override void RowSelected(UITableview view,NSIndexPath index)
{
new AlertView("Selected Row is",""+name[index.Row],null,"Ok",null);
NavigationCOntroller.PopViewController(true);
view.DeselectRow(index,true);
}

您可以做的是将 UITableViewSource 中的事件声明为类似 public event EventHandler<NSIndexPath> OnRowSelected 的内容,然后在以下位置调用它:

public override void RowSelected(UITableView view, NSIndexPath index)    {
    if(OnRowSelected != null)
        OnRowSelected(sender,index);
}

编辑:
要获取上一页的值,您可以尝试使用事件传递值。

在包含列表的 ViewController 中,声明一个事件(例如 public event EventHandler<NSIndexPath> OnClose;),然后从您导航的控制器订阅该事件。如果您的导航是通过情节提要,请在 PrepareForSegue 方法中执行,如下所示:

if(segue.identifier =="YourSegueId"){
YourVc listVC = (YourVc)segue.DestinationViewController;
listVc.OnClose += listVc_OnClose;
}
void listVcOnClose(object sender, NSIndexPath arg){}

现在,如果您在选择字段中索引的行存储时订阅了事件,那么当您调用 PopViewController 时,ViewWillDisappear 也会被调用,这就是您触发事件的地方:

ViewWillDisappear(bool animated)
{
    if(OnClose != null)
        OnClose(sender,TableViewSource.MyFieldThatStoresLastSelectedIndex);
}