我有一个主要的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/