2016-11-19 8 views
2

静的なセル内の日付ピッカーをポップアップしようとしていますが、このコンパイラエラーが発生します。何かご意見は?非関数型の値を呼び出すことができません 'UITableView

エラーがライン上にある: "super.tableViewを返す(のtableView、heightForRowAtIndexPath:indexPathを)" 私はこの問題をどのように修正する必要があり

import UIKit 

class TableViewController: UITableViewController { 

@IBOutlet weak var detailLabel: UILabel! 
@IBOutlet weak var datePicker: UIDatePicker! 
var datePickerHidden = false 

override func viewDidLoad() { 
    super.viewDidLoad() 
    datePickerChanged() 
    // Uncomment the following line to preserve selection between presentations 
    // self.clearsSelectionOnViewWillAppear = false 

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller. 
    // self.navigationItem.rightBarButtonItem = self.editButtonItem() 
} 

@IBAction func datePickerValue(_ sender: UIDatePicker) { 
    datePickerChanged() 
} 

func datePickerChanged() { 
    detailLabel.text = DateFormatter.localizedString(from: datePicker.date, dateStyle: DateFormatter.Style.short, timeStyle: DateFormatter.Style.short) 
} 


func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    if indexPath.section == 0 && indexPath.row == 0 { 
     toggleDatepicker() 
    } 
} 

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    if datePickerHidden && indexPath.section == 0 && indexPath.row == 1 { 
     return 0 
    } 
    else { 
     return super.tableView(tableView: tableView, didSelectRowAtIndexPath: indexPath) 
    } 
} 

func toggleDatepicker() { 

    datePickerHidden = !datePickerHidden 

    tableView.beginUpdates() 
    tableView.endUpdates() 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

答えて

3

UITableViewControllerクラス内でこれを呼び出すと仮定します。さて、UITableViewControllerにはtableViewというプロパティがあります。だから、super.tableViewで始めると、それはあなたがプロパティを要求していると思うので、tableViewが非関数型であるというエラーが返されます。

あなたのケースではreturn super.tableView.rowHeightが有効かどうかを確認してください。

+0

エラーが消えて実行されます。しかし、日付ピッカーを切り替えると、アプリケーションがすぐにクラッシュし、AppDelgateの次の行に「スレッド1:シグナルSIGABRT」というエラーが表示されます。クラスAppDelegate:UIResponder、UIApplicationDelegate { –

+0

おそらく何かはありません。 http://stackoverflow.com/questions/32170456/what-does-fatal-error-unexpectedly-found-nil-while-unwrapping-an-optional-valu – Paulw11

+0

これは、元の質問またはこれに関連する場合もあります。溶液。私の答えがあなたの元の問題を解決したなら、私はあなたが答えを受け入れると感謝します。次に、新しいエラーに関する詳細情報を入手し、別の質問を投稿しようとする必要があります。コミュニティがあなたを助けようとします。 – Frankie

関連する問題