当用户第一次启动我的应用时,他们会看到一个带有两个按钮的“主视图”。从那里,他们可以模态segue到“登录视图”或“注册视图”。这很好用,因为如果用户通过登录/注册改变主意,他们可以回击,我可以将它们从导航堆栈返回到“主视图”。
当用户成功登录时,我使用push segue将它们带到应用程序内部的第一个视图。
我的理解是,现在两个视图(例如Home View和Login View)仍在导航堆栈中。这没有实际价值,因为用户通常永远不会返回这些视图。
有更好的方法吗?或者,这只是一个轻微的低效率,我不应该担心?
答案 0 :(得分:1)
更好的方法是在故事板中添加两个UINavigationController
。一个用于登录/注册,另一个用于登录状态。然后,当用户成功登录时,只需将窗口rootViewController
设置为登录UINavigationController
的窗口即可。UINavigationController
。这样做会减少你的记忆,因为登录/注册- (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"]];
}
不再在堆栈中。
这就是我在AppDelegate中的方法中的应用程序中所做的:
#import "AppDelegate.h"
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[delegate userLoggedIn];
只需成功登录/注册即可从登录/注册视图控制器调用该方法:
{{1}}