Swift View Controller 滑动两次问题

Swift View Controller slides twice problem

我对所有 swift 东西都很陌生,我希望有人能帮我解决这个问题

我设置了以下内容

因此,如果我启动应用程序,一切都很好,并且带有“按钮”的视图控制器已加载到选项卡 1 中

现在我想在 tab1 中导航到另一个带有“标签”的视图控制器

我就是这么做的:

将按钮连接到标签为“Show seque”的新视图控制器

如果我启动应用程序并单击按钮,那么带有标签的新视图控制器会滑动并显示后退按钮

-- > 所以在我眼里一切正常..它只滑动“一次”

但是,如果我以编程方式在左上角的视图控制器中添加一个 UIBarButtonItem,并希望以编程方式导航到带有标签的视图控制器,它将加载两次。我正在使用以下代码:

@objc func settingsTapped() {
    
    
let new = storyboard?.instantiateViewController(withIdentifier: "new") as! NewViewController

self.navigationController?.pushViewController(new, animated:  true)

    
}

这里的问题是视图控制器总是加载两次。它又滑又滑所以我必须点击两次才能回到主视图控制器

有人可以帮我吗?

我不明白为什么会发生这种情况,因为如果我单击带有“仅显示序列”的按钮,它只会按预期滑动一次。

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

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

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

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

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

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

这现在工作正常。

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