gpt4 book ai didi

ios - 阻止 UITableView 接收两次触摸(嵌套弹出动画会导致导航栏损坏)

转载 作者:技术小花猫 更新时间:2023-10-29 10:19:44 26 4
gpt4 key购买 nike

我在我的应用程序中使用了一个 UITableView,当点击它时将使用 UINavigationController 将另一个 View Controller 推送到导航 Controller 的 View Controller 堆栈上。

但是,当 tableview 上的单元格被双重 †apped 时,tableView:didSelectRowAtIndexPath: 被调用两次,导致导航 Controller 推送两个新的 viewcontroller在堆栈上并导致以下控制台输出:

nested pop animation can result in corrupted navigation bar
Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.

这不是一个非常重要的问题,因为用户不太可能在表格 View 单元格上执行双击,但是我想知道是否有一个优雅的解决方案来防止这种错误导航? (也许检查导航 Controller 的 topViewController 并随后决定是否实际执行推送 pushViewController: 方法?)。

最佳答案

像这样将userInteractionEnabled设置为NO

在你的viewWillAppear

-(void)viewWillAppear:(BOOL)animated
{

// if you return from another viewController
[tableView setUserinteractionEnabled:YES];

}

-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

// do your logic here and at the end just set user interaction to NO
[tableView setUserInteractionEnabled:NO];

}

这将阻止所有用户与您的表格 View 的交互。

关于ios - 阻止 UITableView 接收两次触摸(嵌套弹出动画会导致导航栏损坏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23889848/

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