C# 如何更改为其他视图控制器

C# 如何更改为其他视图控制器,c#,ios,xamarin,viewcontroller,C#,Ios,Xamarin,Viewcontroller,这可能是一个愚蠢的问题,但由于我在其他任何地方都找不到答案,我会在这里问 我的问题是:如何更改正在查看的视图控制器。在我的情况下,我希望用户打开应用程序,如果用户尚未填写设置表单,应用程序将从主页更改为设置页面 public override void ViewDidLoad() { base.ViewDidLoad(); //Initial setup check dataBase.SetBool(false, "setUpComplete"); if (da

这可能是一个愚蠢的问题,但由于我在其他任何地方都找不到答案,我会在这里问

我的问题是:如何更改正在查看的视图控制器。在我的情况下,我希望用户打开应用程序,如果用户尚未填写设置表单,应用程序将从主页更改为设置页面

public override void ViewDidLoad()
{
    base.ViewDidLoad();
    //Initial setup check
    dataBase.SetBool(false, "setUpComplete");

    if (dataBase.BoolForKey("setUpComplete") == false)
    {      
    }
    else
    {            
    }
}
感谢所有决定回答这个问题的人

编辑

我的问题解决如下。我必须将一个导航控制器根目录到主页,然后使用下面的代码确保另一个类的ViewDidLoad无效

public override void ViewDidLoad()
{
    base.ViewDidLoad();
    //Initial setup check
    dataBase.SetBool(false, "setUpComplete");

    if (dataBase.BoolForKey("setUpComplete") == false)
    { 
        SetupViewController screenTwo = this.Storyboard.InstantiateViewController("SetupViewController") as SetupViewController;
        this.NavigationController.PushViewController(screenTwo, true);
    }
}

以下是在Swift 4中以代码表示viewcontroller的方式:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
if let vc = storyboard.instantiateViewController(withIdentifier: IdentifierOfTheVC) as? YourVC {
    self.present(vc, animated: true, completion: nil)
}

您可以通过转到YourVC的身份检查器来设置情节提要ID,然后填写情节提要ID字段。

如果要从此处启动第一个viewcontroller,则需要在此处设置rootViewController并推送第一页

public override void ViewDidLoad()
{
    base.ViewDidLoad();
    dataBase.SetBool(false, "setUpComplete");
    var rootNavigationController = new UINavigationController(); 
    if (dataBase.BoolForKey("setUpComplete") == false)
    {
       var objSetUpViewController=new LoginViewController()
       rootNavigationController.NavigationController.PushViewController (objSetUpViewController, true);
    }
    else
    {
       var objHomeViewController=new HomeViewController()
       rootNavigationController.NavigationController.PushViewController (objHomeViewController, true);
    }
}
从第二个屏幕开始,您只需按如下方式推送页面

 NavigationController.PushViewController(new viewController2(), true);
(以Xamarin.Android为例)我认为你必须有一个初始页面,它是第一个页面,在方法OnCreate中,你必须输入以下代码行: (user.SetupExist()-->是一个属性或方法,如果用户的设置存在,则返回true;如果不存在,则返回false。)

}

对于IOS,将此代码放入ViewDidLoad方法:

public override void ViewDidLoad()
{
    base.ViewDidLoad();
    if(user.SetupExist())
    {
        App.Current.MainPage = new HomePage();
    }else{
     App.Current.MainPage = new SettingPage();
    }
}

你知道怎么做吗?这是c#因为这是我写的语言?我发现了。希望对您有所帮助。您在哪里定义SetUpViewController()的位置?我只知道它在当前上下文中不存在。
SetUpViewController()
&
HomeViewController()
是您新添加的控制器,您可以提供任何名称,如viewcontroller 1、LoginViewController等。。你必须加上这些。如果您没有添加。我已经在名为Main.storyboard的故事板中添加了控制器。在情节提要中有两个控制器,一个名为ViewControllerSetup,另一个名为ViewControllerMain,两者的名称和情节提要ID都相同。如果我将代码用作“var objSetUpViewController=new ViewControllerSetup()”它不工作,所以我认为我使用的是错误的,因为它不是一个类。为什么你总是在故事板之后运行,而你可以添加新的viewController并推送它。添加ViewController时,它将附带CS文件和UI文件。我已更新了我的问题,说明了我是如何解决它的。但是谢谢你的帮助。我很确定IOS上的故事板是非常不同的,但是无论如何谢谢你的帮助。应该是这样的:
if(user.SetupExist()){App.Current.MainPage=new HomePage();}else{App.Current.MainPage=new SettingPage();}
public override void ViewDidLoad()
{
    base.ViewDidLoad();
    if(user.SetupExist())
    {
        App.Current.MainPage = new HomePage();
    }else{
     App.Current.MainPage = new SettingPage();
    }
}