直接从主ViewController加载另一个UIView

时间:2011-11-29 23:13:06

标签: iphone ios ipad

我正在创建一个应用程序。在主ViewController中,我创建了菜单。但我希望在菜单可见之前显示登录屏幕(UIView)。

但是因为我在运行应用程序后立即加载菜单,所以我决定创建另一个UIView控制器并将其加载到主ViewController之上。

因此,在我的主ViewController viewDidLoad的末尾,我添加了以下代码,在该视图的顶部打开登录视图

LoginPageView *loginPageView = [[LoginPageView alloc] initWithNibName:@"LoginPageView" bundle:nil];
loginPageView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:loginPageView animated:YES];  

据我所知,该代码的目的是提供另一个视图,但不幸的是登录视图没有出现。只有主ViewController加载。 任何人都可以帮助我吗?你有没有意识到我到底想要什么?

非常感谢

2 个答案:

答案 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];