gpt4 book ai didi

objective-c - 尝试在我的选项卡栏 Controller 上显示登录屏幕时出现未知错误

转载 作者:行者123 更新时间:2023-11-29 04:43:40 25 4
gpt4 key购买 nike

我的应用程序有一个基于选项卡的布局。

在用户可以从主选项卡栏 Controller 看到主屏幕之前,他们必须先登录。

标签栏屏幕向外部 API 发出请求并需要 session ID,以便在用户登录之前无法加载标签栏 Controller 的子 Controller (否则应用程序会崩溃,因为在没有 session 的情况下尝试 API 请求ID)。

这是我的应用程序委托(delegate)中的内容:

#import "AppDelegate.h"
#import "APIRequest.h"
#import "SignInController.h"
@implementation AppDelegate

@synthesize window = _window;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent animated:NO];
// Override point for customization after application launch.

NSString *sessionID = [[NSUserDefaults standardUserDefaults] stringForKey:UserDefaultsSessionIDKey];
if (sessionID == (id)[NSNull null] || sessionID.length == 0){
NSLog(@"session ID was null");

UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
SignInController *signInController = [tabBarController.storyboard instantiateViewControllerWithIdentifier:@"SignInScreen"];

[self.window addSubview:signInController.view];
[self.window makeKeyAndVisible];

}
return YES;
}

当我尝试此操作时,未显示登录屏幕。相反,标签栏 Controller 的第一个屏幕会被加载,并且应用程序会由于缺少 session ID 而异常终止,如上所述。

谁能告诉我为什么登录屏幕没有加载吗?

最佳答案

为什么不将判断某人是否登录的逻辑放在第一个 VC 中?我在多个应用程序中执行相同的过程,我的模型是在尝试加载数据(我自己的自定义方法)时检查用户是否已登录。如果失败,则用户将被发送到模态呈现的 LoginVC,该 LoginVC 在第一个 VC 内具有委托(delegate)方法(该方法传回创建的用户对象)。

关于objective-c - 尝试在我的选项卡栏 Controller 上显示登录屏幕时出现未知错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9979433/

25 4 0