从UIViewController方法更改UIWindow的呈现视图

时间:2011-04-26 02:13:59

标签: iphone xcode ios uiviewcontroller uiwindow

我有一个带有两个UIViewController子类的简单应用程序。

我想通过调用我的一个UIViewController子类中的方法来更改应用程序的UIWindow显示的视图。

基本上我只是搞乱了,我正在尝试使用登录屏幕构建一个简单的测试应用程序,在用户输入凭据后会显示一个主视图。我不太熟悉iOS编程的窗口和视图机制,我现在正在阅读http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/WindowsandViews/WindowsandViews.html#//apple_ref/doc/uid/TP40009503-CH2-SW1并试图了解它。

1 个答案:

答案 0 :(得分:1)

如果这是出于登录屏幕的目的,您应该直接将主视图控制器添加到窗口,并将登录视图控制器添加为主视图控制器内的模态视图。

内部applicationDidFinishLaunching ...

MainViewController *mainViewController = [[MainView....... // instantiate UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:mainViewController];
[mainViewController release]; 
[window addSubview:navController.view];

内部MainViewController

-(void)viewWillAppear:(BOOL)animated
{
    LoginViewController *loginVC = .... //instantiate
    [self.navigationController presentModalViewController:loginVC  animated:NO];
    [loginVC release];
}

如果登录成功,

[self dismissModalViewControllerAnimated:YES];