首页 > 解决方案 > Swift UIAlertAction segue 数据传递

问题描述

我正在使用 UIAlertAction 来询问用户是否要转到该用户个人资料。不知道我做错了什么,因为数据没有正确传递并返回 nil。不确定是否需要在 UIAlertAction 之外使用“prepareForSegue”...我猜 segue 在当前设置的数据之前通过?

let profileAction = UIAlertAction(title: "Go To Profile", style: UIAlertActionStyle.default, handler: { action in self.performSegue(withIdentifier: "followingfeed", sender: self)

        let dataPass = self.feeds[sender.tag].dataPass

        func prepare(for segue: UIStoryboardSegue, sender: Any?) {
            super.prepare(for: segue, sender: sender)
            if segue.identifier == "followingfeed" {

                    let user = dataPass
                    let controller = segue.destination as? ExploreBusinessProfileSwitchView
                    controller?.otherUser = user

            }
        }
    })

标签: iosswiftsegueuialertaction

解决方案


prepareForSegue应该是类的实例方法

let profileAction = UIAlertAction(title: "Go To Profile", style: UIAlertActionStyle.default, handler: { action in 
  self.performSegue(withIdentifier: "followingfeed", sender:self.feeds[sender.tag].dataPass)
})

//

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
   super.prepare(for: segue, sender: sender)
     if segue.identifier == "followingfeed" {
         let user = sender as! [String:Any]
         let controller = segue.destination as? ExploreBusinessProfileSwitchView
         controller?.otherUser = user 
     }
}

推荐阅读