首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何切换到另一个视图控制器?

如何切换到另一个视图控制器?
EN

Stack Overflow用户
提问于 2018-08-02 05:35:24
回答 3查看 603关注 0票数 1

这可能是一个愚蠢的问题,但由于我在其他地方没有找到答案,所以我将在这里问它。

我的问题是:如何更改正在查看的视图控制器。在我的例子中,我希望用户打开应用程序,如果用户还没有填写设置表单,应用程序将从主页更改为设置页面

代码语言:javascript
复制
public override void ViewDidLoad()
{
    base.ViewDidLoad();
    //Initial setup check
    dataBase.SetBool(false, "setUpComplete");

    if (dataBase.BoolForKey("setUpComplete") == false)
    {      
    }
    else
    {            
    }
}

感谢所有决定回答这个问题的人!

编辑

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

代码语言:javascript
复制
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);
    }
}
EN

回答 3

Stack Overflow用户

发布于 2018-08-02 05:42:36

这就是在Swift 4中如何在代码中呈现视图控制器:

代码语言:javascript
复制
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字段。

票数 1
EN

Stack Overflow用户

发布于 2018-08-02 13:11:50

如果你从这里启动第一个视图控制器,你需要在这里设置rootViewController并推送第一个页面。

代码语言:javascript
复制
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);
    }
}

从第二个屏幕开始,你可以像这样简单地推送页面

代码语言:javascript
复制
 NavigationController.PushViewController(new viewController2(), true);
票数 1
EN

Stack Overflow用户

发布于 2018-08-02 16:00:43

(Xamarin.Android的例子)我认为你必须有一个首页,并且在方法OnCreate中,你必须放入以下几行代码:(user.SetupExist()->是一个属性或方法,如果用户的设置存在,它将返回true,如果不存在,则返回false。)

代码语言:javascript
复制
protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Main);
           if(user.SetupExist()){
             var intent=new Intent();
             intent.SetClass(this, typeof(HomePage));
             StartActivity(intent);
           }else
           {
            var intent=new Intent();
             intent.SetClass(this, typeof(SetupPage));
             StartActivity(intent);

           } 

}

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

代码语言:javascript
复制
public override void ViewDidLoad()
{
    base.ViewDidLoad();
    if(user.SetupExist())
    {
        App.Current.MainPage = new HomePage();
    }else{
     App.Current.MainPage = new SettingPage();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51642578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档