Xcode 显示用于登录的UIViewController

Xcode 显示用于登录的UIViewController,xcode,uiviewcontroller,uinavigationcontroller,Xcode,Uiviewcontroller,Uinavigationcontroller,我正在构建请求用户进行身份验证的应用程序。 如果与服务器的会话过期,将弹出登录控制器。 到现在为止,一直都还不错。问题在于,当用户打开应用程序时,会显示第一个屏幕(空表视图),然后显示登录屏幕。 我知道这是一个细节,但我认为这是不对的 这是我的主视图控制器,位于导航控制器下。 代码: 如果我把代码放在willbeen中,我会得到警告:“不建议在分离的视图控制器上显示视图控制器。”问题仍然存在 有人知道解决这个问题的好方法吗?也许干净的方法是让您的第一个视图控制器看起来像某种“等一下…”。。。(检

我正在构建请求用户进行身份验证的应用程序。 如果与服务器的会话过期,将弹出登录控制器。 到现在为止,一直都还不错。问题在于,当用户打开应用程序时,会显示第一个屏幕(空表视图),然后显示登录屏幕。 我知道这是一个细节,但我认为这是不对的

这是我的主视图控制器,位于导航控制器下。 代码:

如果我把代码放在willbeen中,我会得到警告:“不建议在分离的视图控制器上显示视图控制器。”问题仍然存在


有人知道解决这个问题的好方法吗?

也许干净的方法是让您的第一个视图控制器看起来像某种“等一下…”。。。(检查登录)屏幕-或更好,正如你在评论中提到的-平稳地延续你的发布形象;然后,根据身份验证的结果,转换到不同的视图控制器:

  • 成功:继续导航控制器/表格视图控制器
  • 失败:继续“登录”查看控制器

  • -presentViewController:animated:completion:
    带有
    animated==NO
    (立即)第一件事
    -viewdid出现
    ?您的基础视图控制器是否为某些帧显示,或者它是否成功隐藏?也许更干净的方法是将您的第一个视图控制器默认为某种“稍等片刻…”。。。(检查登录)屏幕,然后根据结果从那里转换到不同的视图控制器。速度快得多,但显示的是空视图。关于“等待一秒钟”,我认为这是一个好主意,因为我的LoginLaunch类在用户登录后会返回到调用它的视图控制器。我想用与启动屏幕相同的视图替换“等待一秒钟”,这样用户就不会注意到差异。你能回答这个问题吗?
    -(void)viewDidAppear:(BOOL)animated{
    NSLog(@"Username: %@",[MMCurrentUser email]);
    
    //Check if the user is logged and shows the sites else it shows the login screen
    
    if(![MMCurrentUser email]){
    
        LoginLaunch *ll;
        ll= [[LoginLaunch alloc]initLoginScreenFrom:self];
    
    }}