我的问题是当我提出UIViewController
呈现视图变黑时。
我有一个名为UIViewController
的{{1}},这是我的窗口的根视图。
我有一个mainViewController
(刚刚添加为mainViewController视图的子视图)。
MMDrawerController
包含我的其余观点。
但是当我从我的MMDrawerController
中呈现新的UIViewController
时,新的VC显示效果很好,但是当它解散时,它只会留下黑屏。
注意添加时会出现黑屏(我可以直接看到)。不是在解雇时。
出于测试目的,我做了这段代码:
mainViewController
与正常使用相同的黑色结果。 (通常是UIViewController *vc = [UIViewController new];
vc.view.backgroundColor = [UIColor redColor];
[[[[UIApplication sharedApplication] keyWindow] rootViewController] presentViewController:vc animated:NO completion:^{
[vc dismissViewControllerAnimated:YES completion:nil];
}];
...)
我的mainViewController设置如下:
QLViewController
Souce code of MMDrawerController在我的项目中是最新的
答案 0 :(得分:1)
我已经在MMDrawerController示例项目中测试了代码,但我无法重现该问题,以下是我的尝试:
MMAppDelegate.m
-(BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
//...
UIViewController *testVc = [[UIViewController alloc] init];
testVc.view.backgroundColor = [UIColor greenColor];
[testVc.view addSubview:self.drawerController.view];
[self.window setRootViewController:testVc];
[self.window addSubview:testVc.view];
return YES;
}
MMExampleSideDrawerViewController.m:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
switch (indexPath.section) {
case MMDrawerSectionViewSelection:{
UIViewController *vc = [UIViewController new];
vc.view.backgroundColor = [UIColor redColor];
UIViewController *mainVC = [[UIApplication sharedApplication] keyWindow].rootViewController;
[mainVC presentViewController:vc animated:YES completion:^{
[vc dismissViewControllerAnimated:YES completion:nil];
}];
return;
//...
}
MMExampleCenterTableViewController.m:
-(void)doubleTap:(UITapGestureRecognizer*)gesture{
UIViewController *vc = [UIViewController new];
vc.view.backgroundColor = [UIColor redColor];
UIViewController *mainVC = [[UIApplication sharedApplication] keyWindow].rootViewController;
[mainVC presentViewController:vc animated:YES completion:^{
[vc dismissViewControllerAnimated:YES completion:nil];
}];
return;
[self.mm_drawerController bouncePreviewForDrawerSide:MMDrawerSideLeft completion:nil];
}
答案 1 :(得分:0)
最后,问题是我在 mainViewController 上应用了插入约束。
在场景后面,我认为方法presentViewController:animated:completion:
使用的是框架而不是AutoLayout,这会破坏 mainViewController 中UIView
的{{1}}。< / p>
感谢@simalone,我使用相同的方法找到问题的根源(使用UIViewController
示例项目)。
我想测试自己的问题,I uploaded the example project with the issue这样你就可以理解它了。 线上有一个断点,它是bug的起源。 然后双击视图。
再次感谢@simalone。干杯!