gpt4 book ai didi

ios - 在 iOS 中快速切换 View

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

我有一个 View A、一个 View B 和一个 View C。我的想法是:我在 View A 上呈现 View B, View B 在 View A 中有一个执行 segue 的委托(delegate): View C。

我的问题是我收到消息“在演示过程中尝试在 View A 上显示 View B!”。

我可以在执行 segue 的 View A 方法中添加延迟,但没有更好的方法让它工作吗?

在 View A 中,委托(delegate)方法:

- (void)addItemViewController:(NSString *)string text:(NSString *)textfield{
[self barcodeData:string type:1 :^(BOOL finished) {
if(finished){
[self performSegueWithIdentifier:@"viewC" sender:self];
}
}];
}

在 View B 中

[self.delegate addItemViewController:saisieManuelleTextView.text text:nil];    

[self dismissViewControllerAnimated:NO completion:nil];

最佳答案

尝试在动画完成处理程序中调用委托(delegate)(在 redent84 的帖子中有一些重叠也建议这样做):

[self dismissViewControllerAnimated:YES completion:^{
[self.delegate addItemViewController:saisieManuelleTextView.text text:nil];
}];

这样您仍然可以获得委托(delegate)的好处并避免同时 View Controller 动画的可能性。

更好的是,如果 View A 呈现 View B,则让 View A 也负责关闭 View B,而不是让 View B 关闭自身。这样 viewB 就不必首先知道它是如何呈现的:

- (void)addItemViewController:(NSString *)string text:(NSString *)textfield{
[viewB dismissViewControllerAnimated:YES completion:^{
[self barcodeData:string type:1 :^(BOOL finished) {
if(finished){
[self performSegueWithIdentifier:@"viewC" sender:self];
}
}];
}];
}

关于ios - 在 iOS 中快速切换 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23634871/

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