ios - 如何以编程方式更改 RootViewController?

标签 ios iphone

我正在开发一些自定义相机应用程序,我只想跳过我的登录页面并在用户已经注册时将我的相机主页设置为初始 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/

相关文章:

iPhone如何知道蓝牙耳机是否已连接

ios - Xcode 11.1 如何安装 iOS14 模拟器?

ios - swift UIView : make a path always be at the end of person's finger?

iphone - 本地通知问题

iphone - UIImageJPEGRepresentation 在视网膜显示屏上提供 2x 图像

iphone - ASIHTTP请求问题

ios - UITapGestureRecognizer 将仅注册 >1 次点击

iphone - 类型转换 UIView 警告

ios - 环境对象内的 SwiftUI 可观察对象不更新 View

ios - UI颜色扩展