gpt4 book ai didi

ios - UIViewController 收到通知并在按下按钮时推送 segues,但需要防止多次按下按钮和 segues

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

我有一个带有 Root View Controller 的 UINavigationController。我的 UINavigationController 也设置为我的应用程序的 Initial View Controller

在我的整个应用程序中,每当我想进行 segue 时,我都会使用以下代码:

MyViewController *myVC = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[self.navigationController pushViewController:myVC animated:YES];

这非常有效。

我刚刚为我的应用程序设置了一个新的通用按钮,该按钮显示在我的应用程序的每个屏幕上。如果用户按下此按钮,则会出现另外 3 个按钮,如果他们点击这 3 个按钮中的一个,则需要进行 segue。

当按下 3 个按钮之一时,我通过 NSNotificationCenter 发布通知。我所有的 UIViewControllers 都注册为这个通知的观察者,当他们收到通知时,他们被告知使用我上面发布的相同代码推送 View Controller 。

这非常有效。用户被推送到新的 UIViewController

但是,如果用户再次按下我的通用按钮,然后点击同一个按钮,它只会再次按下相同的 UIViewController,即使它们已经在那个按钮上。

我从来没有真正以这种方式设置过东西,所以我不确定现在该怎么做。如果它们已经被推送到那个 View Controller ,那么我需要防止它们再次被推送到那里。

最佳答案

我最终为每个按钮添加了字符串标识符。按下按钮时,将传递字符串标识符。基于字符串标识符,我将选定的 UIViewController 类存储在一个属性中。

如果选择的 UIViewController 类匹配 UINavigationController 的 visibleViewController 属性,那么我不会发布 segue 通知。

关于ios - UIViewController 收到通知并在按下按钮时推送 segues,但需要防止多次按下按钮和 segues,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28314542/

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