以编程方式创建和删除UIViews

时间:2012-01-03 11:19:21

标签: objective-c ios4

我正在学习如何以编程方式操作视图显示,我设法使用以下代码块在appDelegate中显示一个新视图:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

UINavigationController *navController = [[UINavigationController alloc] init];
loginController = [[LoginController alloc] init];
[navController pushViewController:loginController animated:NO];
[self.window addSubview:navController.view];
[self.window makeKeyAndVisible];

return YES; }

我在此视图中添加了一个按钮,该按钮将删除当前视图并假设以编程方式显示新视图,但是,我只是设法删除视图而不显示新视图。

我显示第二个视图的代码如下:

HomeController *homeView = [[HomeController alloc] init];
        [self.window addSubview:homeView.view];
        [homeView.view release];

请指教..我一直在寻找几个小时无济于事,使用程序切换视图,iPhone视图,removeSuperview ..

基本上我想创建一个简单的登录流程,在app start我将显示我的第一个视图(登录表单),成功登录后我想丢弃旧视图并显示第二个视图,这是我的主页。

1 个答案:

答案 0 :(得分:2)

使用UINavigationController,您走在正确的轨道上。事实上,你几乎就在那里。

您已有两个视图控制器 - 一个用于登录页面,另一个用于主页。在didFinishLaunchingWithOptions:中,将两个控制器推送到UINavigationController的堆栈:首先是“home”控制器,然后是“login”控制器。登录控制器检测到登录成功后,请致电popViewControllerAnimated:popToRootViewControllerAnimated:以转到主页。