我有一个应用程序,当我第一次安装应用程序时,我会显示我的第一个视图控制器。在第二次运行之后,我不希望第一个视图再显示。
我保存了一个设置值,告诉我该应用程序是否已经运行过,如果有,那么我调用performSegueWithIdentifier。
我无法在viewDidLoad中调用它,因为这不起作用,但如果我在viewDidAppear中调用它,那么我会看到第一个视图一瞬间。
在第一个视图被处理之前,我可以在某个地方调用它吗?
答案 0 :(得分:2)
您需要在AppDelegate.m
。
检查应用程序之前是否已启动,并相应地设置window
rootViewController
。
-(void) setRootViewControllerByCheckingLoginStatus
{
BOOL isUserLogin = [[NSUserDefaults standardUserDefaults] boolForKey:@"IS_USER_LOGGEDIN"];
if (isUserLogin) {
// Set your controller if user has logged in.
YourController *yourController = [[YourController alloc] init]; // Or YourController *yourController = [storyBoard instantiateViewControllerWithIdentifier:@"YourControllerStoryBoardID"];
self.window.rootViewController = yourController;
}
else
{
//set other controller if user is not logged in. Or just let it be what it is by default.
}
}
在-application:
didFinishLaunchingWithOptions:
你已经完成了。
编辑您的评论..
黑屏表示您尚未正确实例化ViewController。不要用
[[YourController alloc] init];
使用
YourController *yourController = [storyBoard instantiateViewControllerWithIdentifier:@"YourControllerStoryBoardID"];