gpt4 book ai didi

ios - 如何防止两次执行相同的segue?

转载 作者:行者123 更新时间:2023-12-01 18:48:43 24 4
gpt4 key购买 nike

我的 iOS 应用程序中的导航出现问题。我有带有菜单项表格 View 的滑动菜单。点击其中一个项目会触发 segue,它将新的 View Controller 插入堆栈。问题是我可以在同一个堆栈上两次推送同一个 View Controller 。如果我选择菜单项“A”,则将相应的 View Controller 推送到导航堆栈上。从这个新推送的 View Controller 中,我还可以选择相同的“A”菜单项并推送与最顶层 View Controller 相同类的新距离。我怎样才能防止这种情况?

不工作的解决方案:
检查导航堆栈顶部 Controller 的类。但问题是我只知道 segue 的标识符(NSString* 对象),无法获取有关目标 View Controller 类的信息。我可以检查该类的唯一地方是方法:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

但我不能阻止从这种方法执行segue。

我尝试在属性中保存上次执行的 segue,但它不起作用,因为当我按下“A” View Controller ,然后按下“B” View Controller ,然后按下后退按钮时,我将无法再次按下 B,这是错误的: )

最佳答案

你需要以下方法

- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender 

只需返回 false 即可取消 segue。你会有这样的东西(伪代码):
if ([performedSeguesArray contain:identifier])
{
return NO;
}
else
{
[performedSeguesArray addObject:identifier];
}

return YES;

关于ios - 如何防止两次执行相同的segue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32885212/

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