我有一个Xamarin.iOS应用程序,其中包含一个导航控制器,其中UIViewController内部的视图控制器ViewController.cs
中的根(在单个视图应用程序中创建的默认值)是一个具有segue的表视图到一个新的视图控制器。
在下面的故事板中描述。
表视图由StationsTableViewSource.cs
代码控制,该代码继承自UITableViewSource
。表视图的源设置在ViewController.cs
内。
StationsTable.Source = new StationsTableViewSource(StationPlayer.StationsTitleList)
当我在表格视图中按下一个单元格时,我想要转换到新的视图控制器,但正如我所看到的那样:
我的问题是,如上所述设置,如何从嵌套在View Controller中的tableview内的单元格执行segue到另一个View Controller?
请更正术语 - 在Xamarin / iOS术语上不要太热。
谢谢大家。
答案 0 :(得分:1)
首先,我们需要弄清楚你创建了哪个segue?
这意味着:点击PerformSegue()
+ ctrl并拖动到新的ViewContoller。这样,就不需要手动执行Identifier
。当您单击Cell时,它将推送到新的Controller。
这意味着:点击ViewContoller + ctrl的底栏,然后拖动到新的ViewController。这样,我们需要单击上面创建的segue,然后设置public override void RowSelected(UITableView tableView, NSIndexPath indexPath)
{
//use this method we can push to a new viewController
//the first parameter is the identifier we set above
parentVC.PerformSegue("NewPush", indexPath);
}
。单击Cell时,将触发以下事件:
ViewController parentVC;
//You can add other parameters you want in this initial method
public MyTableViewCellSource(ViewController viewController, ...)
{
parentVC = viewController;
}
我无法访问父/根/包含视图控制器 表格视图
当你构建这个来源时,你可以通过你的父母" ViewController如:
PrepareForSegue()
此外,两个segue都会在父ViewController中触发public override void PrepareForSegue(UIStoryboardSegue segue, NSObject sender)
{
if (segue.Identifier == "NewPush")
{
SecondVC secondVC = segue.DestinationViewController as SecondVC;
...//do some configuration
}
}
。在此方法中,您可以将参数传递给新的ViewController:
plt.scatter(x="A",y="B",c="C",
data=df.apply(lambda x: [x.A,x.B,chr(int(1.6*ord(x.C[1])-63.6))], axis=1))
关于如何使用segue,您可以阅读this official documentation了解更多详情。