0

PFTableViewCell から次のビュー コントローラー (詳細) にデータを渡そうとしていますが、まだデータを表示できません。Swift 2.0/Xcode 7 用のコードを正しく書いたと思います。これで約 2 週間立ち往生しており、コーディングがまったく得意ではありません。データを他のViewControllerに渡すことができる他のコードはありますか?

私の FirstViewController には、次のコードが書かれています。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)  {
        if segue.identifier == "Detail" {
            if let destination = segue.destinationViewController as? DetailsViewController
            , path = tableView?.indexPathForSelectedRow
            , cell = tableView?.cellForRowAtIndexPath( path ) as? Post
        {
            destination.name = cell.name.text ?? "nil"
            destination.message = cell.message.text ?? "nil"
        }

私の DetailsViewController には、次のように書かれています。

    var name: String?
var message: String?

@IBOutlet weak var userName: UILabel?
@IBOutlet weak var userMessage: UILabel?

override func viewDidLoad() 
{
    super.viewDidLoad()
    userName?.text = name ?? "nil"
    userMessage?.text = message ?? "nil"
}
4

1 に答える 1

0

PFQueryTableViewController を使用している場合は、これを試してください。

1) PFQueryTableViewController (セルからではなく、View Controller から) から、データの転送先の View Controller への手動セグエを作成します。インターフェイス ビルダーのインスペクター パネルで、「yourManualSegue」という名前を付けます。

2) クラスの先頭 (PFQueryTableViewController) で、2 つの変数を作成します。

  var nameToPass = String()
  var messageToPass = String()

3) didSelectRowAtIndexPath メソッドを次のように呼び出します。

  func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
       let object = objectAtIndexPath(indexPath)
       self.nameToPass = object!.objectForKey("keyThatholdsNameHere") as! String
       self.messageToPass = object!.objectForKey("keyForMessageHere") as! String

  self.performSegueWithIdentifier("yourManualSegue", sender: self)


}

4) 今、あなたの prepareForSegue で:

 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)  {
if segue.identifier == "Detail" {
     let destination = segue.destinationViewController as? DetailsViewController
    destination.name = self.nameToPass
    destination.message = self.messageToPass

   }
于 2015-10-29T02:55:49.400 に答える