当用户第一次启动我的应用程序时,他们会看到一个带有两个按钮的"Home View“。从那里,他们可以模式分段到“登录视图”或“注册视图”。这很好用,因为如果用户通过登录/注册改变了主意,他们可以回击,我可以将他们从导航堆栈返回到"Home View“。
当用户成功登录时,我使用push segue将他们带到应用程序内部的第一个视图。
我的理解是,这两个视图(例如,主页视图和登录视图)仍然在导航堆栈中。这没有实际价值,因为用户通常不会返回到这些视图。
有没有更好的方法来做这件事?或者,这只是一个轻微的低效,我不应该担心?
发布于 2014-03-30 10:34:42
一个更好的方法是在你的故事板中有两个UINavigationController。一个用于登录/注册,另一个用于登录状态。然后,当用户成功登录时,只需将窗口的rootViewController设置为登录的UINavigationController的user即可。这样做将减少您的内存,因为登录/注册UINavigationController不再位于堆栈中。
这是我在AppDelegate中的一个方法内的应用程序中所做的事情:
- (void)userLoggedIn
{
self.loggedIn = YES;
// Other properties here such as username, email, and password if necessary.
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main"
bundle:nil];
[self.window setRootViewController:[mainStoryboard instantiateViewControllerWithIdentifier:@"LoggedIn"]];
}要在成功登录/注册时从登录/注册视图控制器调用该方法,只需:
#import "AppDelegate.h"
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[delegate userLoggedIn];https://stackoverflow.com/questions/22739569
复制相似问题