zer*_*ent 12 iphone xcode objective-c presentmodalviewcontroller ios
当我提出我UIViewController同modalPresentationStyle父的UINavigationController设置UIModalPresentationCurrentContext,在UIViewController不滑动,没有使用过渡.
这是我的代码:
UIViewController *viewController = [[UIViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
navController.navigationBarHidden = YES;
self.navigationController.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentViewController:navController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
当我没有设置modalPresenttionStyle,一切正常.但我需要这种风格,因为我希望UIViewController礼物是叠加的.
BTW:当ViewController被解雇时,动画效果很好.
如果您希望UIViewController将其呈现为覆盖层,那么这不是正确的方法,因为当您这样做时:
[self presentViewController:navController animated:YES completion:nil];
您正在进行模式演示,并且父视图控制器不会位于当前视图控制器下方。相反,您将看到UIWindow,因此它可能会是黑色的,而这不是您想要的。
因此,为了执行您想要的操作,您需要将控制器呈现为 childViewController 并将其视图添加到父控制器视图,如下所示:
UIViewController *viewController = [[UIViewController alloc] init];
[self addChildViewController:viewController];
[self viewWillDisappear:animated];
[self.view addSubview:viewController.view];
[self.view bringSubviewToFront:viewController.view];
[viewController didMoveToParentViewController:parentController];
[self viewDidDisappear:animated];
Run Code Online (Sandbox Code Playgroud)
并删除UIViewController:
[controller.view removeFromSuperview];
[controller willMoveToParentViewController:nil];
[controller.parentViewController viewDidAppear:animated];
[controller removeFromParentViewController];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1578 次 |
| 最近记录: |