C# 为什么不是';这个准备工作不起作用吗?

C# 为什么不是';这个准备工作不起作用吗?,c#,ios,xamarin,C#,Ios,Xamarin,我正在使用Xamarin和c#编写一个iOS应用程序,我正在尝试使用PrepareForSegue将数据通过segue传递到另一个视图 这里是我的MainstryBoard.StoryBoard,我在这里设置了我的视图和序列: 我有一个注册和登录按钮的初始视图,当按下该按钮时,使用您看到的序列将其推到选项卡控制器 来自初始视图控制器的Segue具有名为SegueToTabController的标识符。所以我用 this.PerformSegue ("SegueToTabController",

我正在使用Xamarin和c#编写一个iOS应用程序,我正在尝试使用PrepareForSegue将数据通过segue传递到另一个视图

这里是我的MainstryBoard.StoryBoard,我在这里设置了我的视图和序列:

我有一个注册和登录按钮的初始视图,当按下该按钮时,使用您看到的序列将其推到选项卡控制器

来自初始视图控制器的Segue具有名为SegueToTabController的标识符。所以我用

this.PerformSegue ("SegueToTabController", this);
在“我的初始视图控制器”中,将代码推送到选项卡控制器。当我这样做的时候,我也想用它发送数据。所以我使用了PrepareForSegue。这是我的密码:

public override void PrepareForSegue (UIStoryboardSegue segue, NSObject sender)
    {
        base.PrepareForSegue (segue, sender);

        var Controller = segue.DestinationViewController 
            as FriendsTabViewController;

        if (Controller != null) {
            //I defined UserData early in my code and 
            //I have SentData defined in the FriendsTabViewController  
            Controller.SentData = UserData;
        }
    }

我想它不起作用是因为FriendsTabViewController(从选项卡控制器出来的第一个视图)不是Segue要去的地方。我试图传递数据的序列将进入选项卡栏控制器。因此,我想知道如何将数据传输到第一个实际的选项卡,而不是选项卡栏控制器

在objective-c中,您将使用view controller.firstObject获取对第一个选项卡中的控制器的引用(从选项卡栏控制器)。您知道是否可以在c#中执行此操作吗?当然可以,但我不知道c#语法。您应该将var tab=segue.DestinationViewController这样的东西作为UITabBarController;那么,我不确定。可能var Controller=tab.viewControllers[0]作为FriendsTabViewController;我不知道使用[0]是否是访问c#中数组的第一个元素的方法。哇,谢谢你的工作!如果您想知道c#语法是什么样子的,那么this'var Tab=segue.DestinationViewController作为uitabarcontroller;var Controller=Tab.childViewController[0]作为FriendsTabViewController;'