swift - 当连接到前一个 View Controller 时,按钮会忽略操作

标签 swift xcode swift3 xcode7 unwind-segue

这是我当前的问题。

我想放松到以前的 View Controller ,我们将其称为 viewcontroller1。 这工作正常,除了按钮操作 与segue相连,里面还写了很多其他代码。然而,当按下按钮时,xcode 会忽略已经编写的代码。

所以这是我的问题如何让按钮执行编写的代码然后进行转场?

对于展开转场,我在 ViewController1 中创建了一个空操作。

  @IBAction func unwindtoViewcontroller1(segue: UIStoryboardSegue){}

并将 ViewController2 与此 segue 操作 Hook (使用 ViewController2:s 退出按钮)。 我还将 Segue 设置为“revealviewcontrollerpushviewcontroller”

提前感谢您为我提供的所有帮助,我真的陷入困境。

最诚挚的问候阿尔宾

最佳答案

您应该能够这样做:
打开 Assistant Editor,然后从在 ViewController 2 中执行展开转场的按钮控制拖动以创建 IBAction。这是您希望按钮执行的操作的所有代码都应该存放的位置。
此操作在调用 unwind segue 函数之前执行。
因此,您的按钮将同时执行以下操作:操作和放松。
我做了一个简单的项目来说明并将输出打印到控制台。 YellowVC 中的按钮在展开之前执行一个操作。
正如您所说,在第一个 ViewController 中(在我的示例中是绿色的 ViewController,您有一个用于展开转场的 IBAction

@IBAction func goBackToGreenVC(segue: UIStoryboardSegue) {  
      print("go back")
}  

然后在第二个 ViewController(在我的例子中是黄色的)中,控制从按钮拖动到退出以设置展开转场,然后还控制从按钮拖动到 IBAction 的助理编辑器,如下所示:

@IBAction func goBackToGreenVCButtonTapped(_ sender: UIButton) {  
     print("performing an action before unwind")  
} 

storyboard enter image description here

关于swift - 当连接到前一个 View Controller 时,按钮会忽略操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42539969/

相关文章:

ios - 如何将推送通知 token 存储到外部数据库中 - iOS 10、Swift 3

json - 将字典(JSON)反序列化为快速对象

arrays - 如何使用 sorted 对元组数组进行排序? (无法使用类型参数列表调用 'sorted')

ios - 在 Swift 中异步改变集合的惯用方法

ios - 如何自动调整单元格大小?

ios - undefined symbol : _OBJC_CLASS_$_SKStoreReviewController when testing Gamemaker Studio 2 Project

swift - 如何使用 playerViewController 快速循环播放我的视频?

ios - 如何在 ios 中隐藏推送通知?

swift - 对查询字符串非常困惑

swift - 尝试在 Swift 上使用自定义 UITextField 时出现 exc_bad_access 错误