Swift View Controller 滑动两次问题
Posted
技术标签:
【中文标题】Swift View Controller 滑动两次问题【英文标题】:Swift View Controller slides twice problem 【发布时间】:2020-12-21 23:57:56 【问题描述】:我对所有快速的东西都很陌生,我希望有人可以帮助我解决这个问题
我已经设置了以下
带有 1 个导航控制器的标签栏控制器所以如果我启动应用程序一切都很好,并且带有“按钮”的视图控制器被加载到选项卡 1 中
现在我想在 tab1 中导航到另一个带有“标签”的视图控制器
这就是我所做的:
将按钮连接到标签为“显示序列”的新视图控制器
如果我启动应用程序并单击按钮,则带有标签的新视图控制器会滑动并显示返回按钮
--> 所以在我看来一切都很好..它只滑动“一次”
但是,如果我以编程方式在左上角的视图控制器中添加 UIBarButtonItem,并希望以编程方式导航到带有标签的视图控制器,它会加载两次。我正在使用以下代码:
@objc func settingsTapped()
let new = storyboard?.instantiateViewController(withIdentifier: "new") as! NewViewController
self.navigationController?.pushViewController(new, animated: true)
这里的问题是视图控制器总是加载两次。它再次滑动,所以我必须单击两次才能返回主视图控制器
有人可以帮我吗?
我不明白为什么会发生这种情况,因为如果我单击带有“仅显示序列”的按钮,那么它只会按预期滑动一次。
【问题讨论】:
settingsTapped 调用了多少次? 嗨,唐..只有一次!我也做了一个完整的新测试项目并且有完全相同的问题。首先我以为我在其他项目中犯了一个错误,但事实并非如此 我假设您还没有使用 segue 将 UIBarButtonItem 连接到新的视图控制器? 不,我没有这样做。我怎样才能以编程方式为带有标签的视图控制器创建一个序列? 这可能会有所帮助:***.com/a/54201390/10116367 【参考方案1】:好的,我已经解决了这个问题。非常感谢这里的答案!
这真的是一个很难的“坚果”,我已经搜索了很长时间如何解决这个问题
它滑动了两次,因为在创建 UiBarButtomItem 时我使用了这个
leftbutton.addTarget(self, action: #selector(settingsTapped), for: .allEvents)
我已将“.allEvents”替换为“.touchUpInside”,现在它按预期工作并且只滑动一次
leftbutton.addTarget(self, action: #selector(settingsTapped), for: .touchUpInside)
现在可以正常使用了。
我真的不知道为什么 .allEvents 会产生两次滑动
【讨论】:
以上是关于Swift View Controller 滑动两次问题的主要内容,如果未能解决你的问题,请参考以下文章
从 Tab View Controller 切换到滑动手势时的 iOS Xcode 问题
删除Popover View Controller -swift
Swift:在调用 applicationDidEnterBackground 时确定 Active View Controller
Swift:UITableViewController - 修改 UITableView 和 View Controller 之间的边距
Swift 4.2 UIDocumentBrowser View Controller Powerpoint PPTX 文件灰显