gpt4 book ai didi

ios - 呈现一个 ViewController 会破坏之前的 ViewController

转载 作者:行者123 更新时间:2023-11-29 12:52:16 25 4
gpt4 key购买 nike

我的问题是,当我呈现一个 UIViewController 时,呈现的 View 变黑了。

我有一个名为 mainViewControllerUIViewController,它是我窗口的 Root View 。我在里面有一个 MMDrawerController(只是添加为 mainViewController View 的 subview )。

MMDrawerController 包含我的其余 View 。

但是当我从我的 mainViewController 中呈现一个新的 UIViewController 时,新的 VC 显示效果很好,但是当它关​​闭时它只留下黑屏。注意添加时出现黑屏(我可以直接看到)。解雇时不是。

出于测试目的,我做了这段代码:

UIViewController *vc = [UIViewController new];
vc.view.backgroundColor = [UIColor redColor];
[[[[UIApplication sharedApplication] keyWindow] rootViewController] presentViewController:vc animated:NO completion:^{
[vc dismissViewControllerAnimated:YES completion:nil];
}];

这与正常使用时产生相同的黑色结果。 (通常是 QLViewController...)

我的 mainViewController 是这样设置的:

_mainViewController = [MyMainViewController new];
_window.rootViewController = _mainViewController;
[self.window addSubview:_mainViewController.view];

Souce code of MMDrawerController在我的项目中是最新的

最佳答案

我已经在 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];
}

关于ios - 呈现一个 ViewController 会破坏之前的 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22145208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com