gpt4 book ai didi

ios - 在 PresentDismiss 和 NavigateViewController 推送/弹出时遇到问题

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

我将整个应用嵌入到 UINavigationController 中。现在主屏幕有几个模块供用户选择。现在,当用户点击模块时,它被导航,如​​果用户希望从任何其他可用模块中选择另一个模块,导航栏中有一个按钮,它以模式方式在当前模块的顶部呈现 HomeViewController,然后用户可以从那里选择任何不会显示的模块,而是导航。

现在我所做的是在 HomeViewController 上创建一个名为 navigate 的委托(delegate),并将被每个模块的 View Controller 覆盖,并且它将引用新的 ViewController。然后,当调用此方法时,我首先将 dismissViewController HomeViewController 导航到我有引用的新 ViewController。

现在,真正的问题是有时在从一个模块导航到另一个模块时会出现卡顿,但有时它工作正常。这就是为什么我也无法调试的原因。问题在于,当从 HomeViewController 中单击一个模块时,主屏幕消失,然后再次出现,然后它才真正导航。

从 HomeViewController 导航到模块的代码是

RadiusSearchViewController *rad = [self.storyboard instantiateViewControllerWithIdentifier:@"RadiusSearchViewController"];
[self.delegate navigate:rad];

所有模块中的导航重写方法是

-(void)navigate:(UIViewController*)uiViewController{
NSLog(@"inside navigate method");
[self.presentedViewController dismissViewControllerAnimated:YES completion:nil];
[self.navigationController pushViewController:uiViewController animated:YES];
}

我向您保证,它会以这种方法出现。

现在以模态方式呈现 HomeViewController 的代码是

ViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"HomeVC"];
vc.view.backgroundColor = [[UIColor whiteColor]colorWithAlphaComponent:0];
vc.delegate = self;
vc.providesPresentationContextTransitionStyle = YES;
vc.definesPresentationContext = YES;
vc.modalPresentationStyle = UIModalPresentationOverCurrentContext;
vc.fromOutside = true;
NSLog(@"Presneting...");
[self presentViewController:vc animated:NO completion:nil];

显示而不导航 HomeViewController 的原因是它以透明形式出现在当前模块的顶部,这是必要的。

请记住:它有时会发生,但并非总是如此。就像你可以说一半的时间。

最佳答案

[self.presentedViewController dismissViewControllerAnimated:YES completion:nil]; 
[self.navigationController pushViewController:uiViewController animated:YES];

这个应该改成...

[self.presentedViewController dismissViewControllerAnimated:YES 
completion:^{
[self.navigationController pushViewController:uiViewController animated:YES];
}];

这将确保导航 View Controller 在关闭完成后被调用。检查并查看它是否解决了您的问题。

关于ios - 在 PresentDismiss 和 NavigateViewController 推送/弹出时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33328183/

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