【问题标题】:Swift View Controller slides twice problemSwift View Controller 滑动两次问题
【发布时间】: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 连接到新的视图控制器?
  • 不,我没有这样做。我怎样才能以编程方式为带有标签的视图控制器创建一个序列?
  • 这可能会有所帮助:stackoverflow.com/a/54201390/10116367

标签: swift viewcontroller


【解决方案1】:

好的,我已经解决了这个问题。非常感谢这里的答案!

这真的是一个很难的“坚果”,我已经搜索了很长时间如何解决这个问题

它滑动了两次,因为在创建 UiBarButtomItem 时我使用了这个

 leftbutton.addTarget(self, action: #selector(settingsTapped), for: .allEvents)

我已将“.allEvents”替换为“.touchUpInside”,现在它按预期工作并且只滑动一次

 leftbutton.addTarget(self, action: #selector(settingsTapped), for: .touchUpInside)

现在可以正常使用了。

我真的不知道为什么 .allEvents 会产生两次滑动

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多