swift - 在 prepare for segue 函数中添加两个 guard let

标签 swift xcode segue

我正在尝试使用三个分层的 tableView 构建我的第一个应用程序。中间VC有两个guard let in one prepare for segue function。

  override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

        guard let destination = segue.destination as? AddMemberViewController else {
            return
        }
        destination.club = club

        guard let Destination = segue.destination as? TransactionViewController, let selectedRow = self.tableViewMember.indexPathForSelectedRow?.row else {
            return
        }
        Destination.member = members[selectedRow]

    }

原来是这样的。我可以解决这个问题吗,我的应用程序会同时使用这两个函数,因为它只使用顶部的函数。

最佳答案

问题是如果你想转至 TransactionViewController 函数已经返回,因为 segue.destination 不是 AddMemberViewController。

相反,您应该为您的 segue 提供不同的标识符,并在 prepareForSegue 中请求它们。像这样:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    if segue.identifier == "AddMemberVCSegue" {
        guard let destination = segue.destination as? AddMemberViewController else {
            return
        }
        destination.club = club
    }

    if segue.identifier == "TransactionVCSegue" {
        guard let Destination = segue.destination as? TransactionViewController, let selectedRow = self.tableViewMember.indexPathForSelectedRow?.row else {
            return
        }
        Destination.member = members[selectedRow]
    }
}

关于swift - 在 prepare for segue 函数中添加两个 guard let,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51008405/

相关文章:

ios - 如何通过搜索栏创建到另一个 View Controller 的转场?

ios - performSegueWithIdentifier 不产生带有标识符错误的 segue

ios - 搜索栏色调颜色

objective-c - 使用自定义名称初始化组件

arrays - 分隔序列数组中的奇数和偶数索引

swift - 使用 UITableView iOS swift 以编程方式按下 UIViewController 的后退按钮

xcode - GLKViewController 位于导航 Controller 内的 ViewController 内

swift - 计算 UITextField 的字符因 NSException 崩溃

iphone - Alamofire 无法读取 JSON 文件

ios - UITableView 在更改约束后会影响单元格的高度,最终会破坏约束