我正在创建一个应用程序。在主ViewController中,我创建了菜单。但我希望在菜单可见之前显示登录屏幕(UIView)。
但是因为我在运行应用程序后立即加载菜单,所以我决定创建另一个UIView控制器并将其加载到主ViewController之上。
因此,在我的主ViewController viewDidLoad的末尾,我添加了以下代码,在该视图的顶部打开登录视图
LoginPageView *loginPageView = [[LoginPageView alloc] initWithNibName:@"LoginPageView" bundle:nil];
loginPageView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:loginPageView animated:YES];
据我所知,该代码的目的是提供另一个视图,但不幸的是登录视图没有出现。只有主ViewController加载。 任何人都可以帮助我吗?你有没有意识到我到底想要什么?
非常感谢
答案 0 :(得分:1)
在viewDidLoad
方法中,视图存在,但无法保证视图已经是应用程序视图层次结构的一部分。事实上,几乎不是。
您可以尝试使用viewWillAppear:
或viewDidAppear:
中的代码。
答案 1 :(得分:0)
制作UINavigationController。使用它作为窗口的根视图控制器。将UINavigationController设置为不显示导航栏。
将导航控制器的子视图控制器设置为登录视图控制器。
当用户成功登录时,创建主视图控制器并按下它,如下所示:
MainViewController *mainVC = [[MainViewController alloc] initWithWhatever...];
[self.navigationController pushViewController:mainVC animated:YES];
当用户注销时,您可以执行此操作以返回登录VC:
[self.navigationController popViewControllerAnimated:YES];