我真的被这个问题困住了,如果有人能指出我正确的方向,我将不胜感激......
我正在构建一个带有用于主导航的选项卡栏的 iOS 应用程序。
用户需要注册/登录才能看到主屏幕和标签栏。
用户可以使用 Facebook Connect 登录和注册。
该应用程序与我们自己的 API 进行通信。
目前...当 UITabBarController 的初始视图被加载时,它将检查是否存在当前用户,如果没有,将显示登录屏幕。
if (sessionID == (id)[NSNull null] || sessionID.length == 0){
NSLog(@"session ID was null");
SHOW_SIGN_IN_SCREEN;
}
#define SHOW_SIGN_IN_SCREEN SignInController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"SignInScreen"];\
[self presentViewController:controller animated:NO completion:nil];
从登录屏幕...用户可以触摸“使用 Facebook 登录”按钮或创建一个与注册屏幕相连的新帐户。注册屏幕有一个供用户填写的表格,或者他们可以点击“使用 Facebook 注册”按钮以使用 Facebook 图表提供的他们的 Facebook 详细信息创建一个帐户。
Facebook 回调都由应用程序委托处理,这是我遇到的问题。
API 不关心从应用程序发送的用户凭据是针对新用户还是现有用户。在任何一种情况下,API 都会返回一个有效的会话 ID 以供应用程序继续。
一旦 API 做出响应,应用程序委托应该将用户返回到主标签栏视图控制器,这是我卡住的地方。
目前,我在 AppDelegate 中有这个
// app delegate
-(void)segueToMainTabController
{
NSLog(@"segueToMainTabController");
SignInController *controller = (SignInController *)[self.window.rootViewController presentedViewController];
[controller segueToWelcomeScreen];
}
// sign in controller
-(void)segueToWelcomeScreen
{
NSLog(@"segueToWelcomeScreen");
[self performSegueWithIdentifier:@"SignInToMainTabBar" sender:self];
}
哪个被调用但没有执行 segue ......
谁能告诉我为什么不执行这个segue?
谢谢