我有一个主要的UIViewController

当用户未登录时,在主viewcontroller viewDidAppear的主体中,我呈现一个Login模态,没有任何动画。

问题是,当在真实设备上进行测试时,我可以立即看到呈现的viewController。

我显然通过在主viewcontroller viewDidLoad中添加来解决,

self.view.isHidden = true;


但是我想知道是否有更好的解决方案(例如,在这种情况下,我必须记得当用户成功登录并且模式已被关闭时,将false分配给当前的UIViewController.view.isHidden)。

任何建议表示赞赏:-)

最佳答案

你可以这样

在MainVC viewDidLoad中:

if (user.isNotLoggedIn) {
  LoginVC *loginVC = [LoginVC new];
  [self addChildViewController:loginVC];
  loginVC.view.frame = self.view.bounds;
  [self.view addSubview:loginVC.view];
  [loginVC didMoveToParentViewController:self];
}


登录后在LoginVC中:

    [self willMoveToParentViewController:nil];
    [self.view removeFromSuperview];
    [self removeFromParentViewController];


但是最好通过委托从MainVC中删除LoginVC,并添加一些淡入淡出或滑动的视图动画。

关于ios - 呈现模式ViewController时隐藏UIViewController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47363653/

10-10 03:57