2016-10-18 69 views
0

私のプロジェクトではhttps://github.com/danielgindi/Chartsを利用しています。 viewDidLoad()chartValueSelectedは呼び出されません

self.chartView.delegate = self 

内部

class ViewController: UIViewController, ChartViewDelegate 

chartView

の宣言
@IBOutlet weak var chartView: LineChartView! 

、これは私が実装する方法である:ここでは

が、これは私が私のViewControllerクラスを宣言する方法です、私のコードですデリゲートメソッド

func chartValueSelected(chartView: ChartViewBase, entry: ChartDataEntry, dataSetIndex: Int, highlight: Highlight) 
{ 
    print(dataSetIndex) 
} 

私はグラフをスワイプすると、このメソッドは決して呼び出されません。これがどうして起こるのでしょうか?事前に

おかげchatViewは、デリゲートを呼び出す方法がこれまで呼び出されているかどうかを確認、その後、のviewDidLoadで初期化し、そのデリゲートをチェックしている場合、ブレークポイントと

+0

不十分な情報を質問。質問を改善するか、プロジェクトファイルをどこかにアップロードしてください。 –

+0

ChartViewは独自のクラスまたはサードパーティのライブラリですか?実際にChartViewでこの代理メソッドを呼び出しているのですか? – alexburtnik

+0

chartViewはios-chartsフレームワークのLineChartViewのサブクラスです – DCDC

答えて

5

私が期待していたように、問題はメソッドシグネチャのSwift 3の違いでした。

スウィフト3

func chartValueSelected(_ chartView: ChartViewBase, entry: ChartDataEntry, highlight: Highlight) { ... } 
+0

と呼ばれています。それはちょうど私ですか、新しいIOSチャート3.0は痛いですか? 2.3をセットアップすると簡単でした! – user2986119

0

チェック。 端末の画面でpo chartView.delegateを使用することができます ボタンのように機能させたい場合は、選択したメソッドを呼び出すために、チャートを選択していない可能性があります。おそらく、setHighlightedというアクションがあります...

+0

chartValueSelectedメソッドは呼び出されませんが、self.chartView.delegate = selfは – DCDC

関連する問題