这可能是一个愚蠢的问题,但是由于我在其他任何地方都找不到答案,因此我会在这里问它。
我的问题是:如何更改正在查看的视图控制器。在我的情况下,我希望用户打开应用程序,如果用户尚未填写安装表格,则该应用程序将从主页更改为设置页面 >。
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);
}
}
答案 0 :(得分:1)
这是在Swift 4的代码中呈现视图控制器的方式:
repost is not a function
您可以通过转到YourVC的身份检查器来设置Storyboard ID,然后填写Storyboard ID字段。
答案 1 :(得分:1)
如果要从此处启动第一个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);
答案 2 :(得分:1)
(Xamarin.Android的示例)我认为您必须有一个初始页面,它是第一页,并且在OnCreate方法中,您必须放置以下代码行: (user.SetupExist()--->是一个属性或方法,如果存在用户的设置,则将返回true,否则将返回false。)
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方法中:
public override void ViewDidLoad()
{
base.ViewDidLoad();
if(user.SetupExist())
{
App.Current.MainPage = new HomePage();
}else{
App.Current.MainPage = new SettingPage();
}
}