我正在开发一些自定义相机应用程序,我只想跳过我的登录页面并在用户已经注册时将我的相机主页设置为初始 Root View 。我是从 AppDelegate 或 View 代码内部执行此操作,但是我收到一个错误,任何人从头开始或任何示例示例都对其进行了描述。我的代码如下,
代码在viewDidLoad
如果我在 AppDelegate
中尝试以下代码,那么它也会出现问题
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main.storyboard" bundle:[NSBundle mainBundle]];
NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
if (![defaults boolForKey:@"registered"])
{
NSLog(@"no user register");
ViewController *loginview = [storyBoard instantiateViewControllerWithIdentifier:@"ViewController"];
self.window.rootViewController = loginview;
}
else
{
NSLog(@"user is registered");
CameraHome *camview = [storyBoard instantiateViewControllerWithIdentifier:@"CameraHome"];
self.window.rootViewController = camview;
}
如果我已经注册,任何人都可以描述如何跳过该 View 并直接切换到我的主页。
最佳答案
in .h file
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) UINavigationController *objUINavigationController;
in .m file
NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
if (![defaults boolForKey:@"registered"])
{
ViewController *objViewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
self.objUINavigationController = [[UINavigationController alloc] initWithRootViewController:objViewController];
[self.window setRootViewController:self.objUINavigationController];
[self.window makeKeyAndVisible];
}
else
{
CameraHome *camview = [[CameraHome alloc] initWithNibName:@"CameraHome" bundle:nil];
self.objUINavigationController = [[UINavigationController alloc] initWithRootViewController:camview];
[self.window setRootViewController:self.objUINavigationController];
[self.window makeKeyAndVisible];
}
关于ios - 如何以编程方式更改 RootViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27688213/