首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IOS-7分割到永远不会被召回的视图的正确方法

IOS-7分割到永远不会被召回的视图的正确方法
EN

Stack Overflow用户
提问于 2014-03-30 10:29:29
回答 1查看 68关注 0票数 2

当用户第一次启动我的应用程序时,他们会看到一个带有两个按钮的"Home View“。从那里,他们可以模式分段到“登录视图”或“注册视图”。这很好用,因为如果用户通过登录/注册改变了主意,他们可以回击,我可以将他们从导航堆栈返回到"Home View“。

当用户成功登录时,我使用push segue将他们带到应用程序内部的第一个视图。

我的理解是,这两个视图(例如,主页视图和登录视图)仍然在导航堆栈中。这没有实际价值,因为用户通常不会返回到这些视图。

有没有更好的方法来做这件事?或者,这只是一个轻微的低效,我不应该担心?

EN

回答 1

Stack Overflow用户

发布于 2014-03-30 10:34:42

一个更好的方法是在你的故事板中有两个UINavigationController。一个用于登录/注册,另一个用于登录状态。然后,当用户成功登录时,只需将窗口的rootViewController设置为登录的UINavigationController的user即可。这样做将减少您的内存,因为登录/注册UINavigationController不再位于堆栈中。

这是我在AppDelegate中的一个方法内的应用程序中所做的事情:

代码语言:javascript
复制
- (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"]];
}

要在成功登录/注册时从登录/注册视图控制器调用该方法,只需:

代码语言:javascript
复制
#import "AppDelegate.h"

AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[delegate userLoggedIn];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22739569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档