ios - 登录 ios 的 UINavigationController 流程

标签 ios objective-c

已解决:

用户登录/注册后,使用以下代码转换到主 Storyboard...

 UIWindow* window = [[UIApplication sharedApplication] keyWindow];

 window.rootViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateInitialViewController];

我有以下 UINavigationController 流程​​来处理登录...在 tabbarcontroller 转到作为 viewcontroller 根的 uinavigationcontroller 之后的顶部 segue。

enter image description here

当用户已经登录时,会执行“this segue works”,这样用户就不必在登录屏幕上登录。这完美无缺。我遇到的问题是当用户必须登录时......从登录/注册屏幕到登录屏幕的转场工作完美,但是当我从登录屏幕转到标签栏时,会发生以下情况:

enter image description here

这真的不应该发生,因为我的 viewcontroller.m 中有以下代码(调用到这里)
- (void)viewDidLoad {
    ...
    self.navigationItem.title = @"Messages";
    self.navigationItem.hidesBackButton = YES;

    NSLog(@"gotten to here");
    ...
}

有谁知道为什么会这样?

最佳答案

我喜欢将我的登录流程与正常的应用流程分开。这意味着我不会将登录屏幕中的 segue 链接到应用程序,但我会在我的 AppDelegate 中处理它:

if ([MyUserHandler sharedHelper].isAuthenticated) {
    [self presentMainInterface];
} else {
    [self presentWelcomeInterface];
}

第一种方法这样做的地方:
- (void)presentMainInterface
{
    self.window.rootViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateInitialViewController];
}

另一个显示登录屏幕:
- (void)presentWelcomeInterface
{   
    UIViewController* rootController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"loginScreen"];

    UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:rootController];
    self.window.rootViewController = navigation;
}

这样,只有在用户未通过身份验证时才会加载登录屏幕。

关于ios - 登录 ios 的 UINavigationController 流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21594765/

相关文章:

ios - 如何使 UICollectionViewCell 宽度自动调整大小且其高度保持不变

ios - 带有在方法内部创建的指针的ARC

构建时的 iOS App 模块化

ios - 带有 NavigationBarHidden 的导航 Controller

ios - Objective-C:从JSON获取图像

ios - 有关推送到新 DetailView 的信息

iphone - 用于部署到客户端的 iOS 企业许可证

objective-c - 具有不同数组设置的 UITableView 多个部分

iOS:我不确定,但我的委托(delegate)没有按我的计划进行锻炼

ios - 向上/向下计数动画