2011-04-12 54 views
1

我有一个很大的应用程序。它们之间有很多表格和导航。我开始了一个项目作为'NavigationBasedProject'(xcode模板)。但现在我需要在应用程序的开始处添加登录。所以在这里我做了什么至今: 在“didFinishLaunchingWithOptions”我补充说:iPhone登录画面问题

loginViewController = [[LoginViewController alloc]init]; 
     [loginViewController.view setFrame:CGRectMake(0, 0, 320, 480)]; 
     [self.window.rootViewController presentModalViewController:loginViewController animated:NO]; 

当用户数据是有效的我解雇登录画面是这样的:

[self.loginViewController dismissModalViewControllerAnimated:YES]; 

用户还可以从应用程序注销。然后我再次登录屏幕如下:

[self.window.rootViewController presentModalViewController:loginViewController animated:NO]; 

而且这个工作。但登录屏幕上的文本字段仍充满用户输入的登录数据。我担心这里有一些记忆问题。如何在用户登录时从内存中完全删除登录屏幕。我不使用GUI设计器,而是连接代码中的所有内容。 另外我想知道做登录屏幕和模态视图是否好主意?

回答

2

你应该使用....(我不知道你为什么在类级别声明它loginViewController

LoginViewController *loginViewController = [[LoginViewController alloc]init]; 
      [loginViewController.view setFrame:CGRectMake(0, 0, 320, 480)]; 
      [self.window.rootViewController presentModalViewController:loginViewController animated:NO]; 
    [loginViewController release]; 

和解雇.....

[self.window.rootViewController dismissModalViewControllerAnimated:YES]; 

谢谢,

+0

我必须因为我必须从几个方法访问该变量。我在'didFinishLaunchingWithOptions'中创建了登录视图,但我用另一种方法解雇了它。 – 1110 2011-04-12 10:02:12

+0

所以你可以在解散它之后发布它......你有没有这样做? – Ravin 2011-04-12 10:05:46

+0

是的,它工作:) – 1110 2011-04-12 10:14:00

1

您是否在发布后发布loginViewcontroller?

loginViewController = [[LoginViewController alloc]init]; 
     [loginViewController.view setFrame:CGRectMake(0, 0, 320, 480)]; 
     [self.window.rootViewController presentModalViewController:loginViewController animated:NO]; 
[loginViewController release];