2016-09-01 11 views
0

コントローラを表示するためにセグリングに問題があります。私はxibテーブルビューのセルでテーブルビューを持っています。ここに私のコードです。別のビューコントローラテーブルビューセルに移動xib

override func viewDidLoad() { 
    super.viewDidLoad() 
    tableView.delegate = self 
    setupTableView() 
    setupDataSource() 
} 

private func setupTableView() { 
    tableView.backgroundColor = UIColor.clearColor() 
    tableView.allowsSelection = false 
    tableView.separatorColor = UIColor.clearColor() 
    tableView.registerNib(UINib(nibName: "ExampleTableViewCell", bundle: nil), forCellReuseIdentifier: "cell") 
} 
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! ExampleTableViewCell 
    let list = pariwisata[indexPath.row] 
    cell.nameLabel.text = list.name 
    cell.typeLabel.text = list.type 
    let image = objects[indexPath.row] 
    cell.apply(image) 

    return cell 
} 

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    print("Row \(indexPath.row) selected") 
} 

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    return tableView.bounds.width/1.4 
} 

override func viewDidAppear(animated: Bool) { 
    super.viewDidAppear(animated) 
    updateLocation(true) 
} 

func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) { 
    updateLocation(false) 
    updateLocation(true) 
} 

func updateLocation(running: Bool) { 
    let mapView = self.view as! GMSMapView 
    let status = CLLocationManager.authorizationStatus() 
    if running { 
     if (CLAuthorizationStatus.AuthorizedWhenInUse == status) { 
      locationManager.startUpdatingLocation() 
      mapView.myLocationEnabled = true 
      mapView.settings.myLocationButton = true 
     } 
    } else { 
     locationManager.stopUpdatingLocation() 
     mapView.settings.myLocationButton = false 
     mapView.myLocationEnabled = false 
    } 

} 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { 
    if segue.identifier == "showTop10Detail" { 
     if let indexPath = self.tableView.indexPathForSelectedRow { 
      let destinationController = segue.destinationViewController as! DetailViewController 
      destinationController.detpariwisata = pariwisata[indexPath.row] 
     } 
    } 

私はプロジェクトをビルドするときにエラーはありませんが、私はテーブルビューをタップできません。つまり、私は自分のテーブルビューをタップすることができますが、何も印刷しません。私は何を取りこぼしたか? plsは私に手がかりを与えます。ありがとう!

+0

では、あなたのコードで 'tableView.delegate = self'を持っているのですか? – Tj3n

+0

はい、私はそれを持っています。 –

+0

が奇妙な場合、 'didSelectRowAtIndexPath'が起きているはずです。それをもう一度チェックしてブレークポイントを設定するか、他のビューがセルの選択をブロックしているか確認してください。 – Tj3n

答えて

1

1)あなたは削除する必要が

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
      performSegueWithIdentifier("toDetailPage", sender: indexPath) 
     } 

3)これを使用します詳細ページ

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     let indexPath = self.tableView.indexPathForSelectedRow 
     let person = personList[indexPath!.row] 

     if segue.identifier == "toDetailPage"{ 
     let DetailBookViewController = (segue.destinationViewController as! DetailPage) 
     DetailBookViewController.user_name = user_name 
DetailBookViewController.user_age = user_age 
      DetailBookViewController.user_urlPicture = user_urlPicture 

     } 

4)は覚えている:あなたのストーリーボードで

  • あなたDetailPage

  • であなたのtableViewControllerをリンクする必要がありますが、Personのためのクラスを宣言して宣言する必要があります。

    var PersonList = [Person]()

  • あなたはy私たちのvartableViewクラスとDetailPageクラス

0

のコード行を削除します。

tableView.allowsSelection = false 

それは、セルの選択を許可していません。例えば

tableView.allowsSelection = false 

2)別のページへ1つのセルから渡すように、この行を使用します(DetailPage):

関連する問題