我在SecondViewController
上以FirstViewController
模式呈现,SecondViewController
具有半透明背景(白色,不透明度为70%)。
我面临的问题是当我出示SecondViewController
时,FirstViewController
的视图在SecondViewController
完成呈现之前仍然可见。
这使得UI看起来很滞后。我期待的行为是SecondViewController
出现后,FirstViewController
的视图应该不可见,或者在SecondViewController
的视图出现之前逐渐消失。
任何帮助将不胜感激!
我用来呈现的代码是:
SecondViewController *cntrlr = (SecondViewController *)[[UIStoryboard activationStoryboard] instantiateViewControllerWithIdentifier:@“UserVC”];
[cntrlr setModalPresentationStyle:UIModalPresentationPopover];
[self presentViewController:cntrlr animated:YES completion:nil];
答案 0 :(得分:0)
SecondViewController *cntrlr = (SecondViewController *)[[UIStoryboard activationStoryboard] instantiateViewControllerWithIdentifier:@“UserVC”];
[cntrlr setModalPresentationStyle:UIModalPresentationPopover];
self.view.alpha = 0.0f;
[self.navigationController.navigationBar setHidden:YES];
[self presentViewController:cntrlr animated:YES completion:nil];
// Need to set FirstViewController alpha 1.0f after dismisViewControlle
- [R
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
self.view.alpha = 1.0f;
[self.navigationController.navigationBar setHidden:NO];
}
答案 1 :(得分:0)
在iOS 3.2之后,有一种方法可以在没有任何“技巧”的情况下执行此操作 - 请参阅modalPresentationStyle属性的文档。你有一个rootViewController,它将呈现viewController。所以,这是成功的代码:
viewController.view.backgroundColor = [UIColor clearColor];
rootViewController.modalPresentationStyle = UIModalPresentationCurrentContext;
[rootViewController presentModalViewController:viewController animated:YES];
使用此方法,viewController的背景将是透明的,底层的rootViewController将是可见的。