0

***更新: イェーイ! ***私は何時間も探し回っていますが、これを理解するために必要なものを正確に見つけていません. 客観的な c を使用していくつかの答えがありますが、私は Swift を試していますが、コードを翻訳することができないようです。(私がこれにどれだけ慣れているかはわかりません!)tableView配列からの輸送タイプのリストを表示する単純なものがあります。各セルが押されると、アラートがポップアップして、このタイプの交通手段を以前に使用したことがあるかどうかをユーザーに尋ねます。彼らはイエスかノーで答えることができます。答えが「はい」の場合、ラベルの 1 つを再表示したいと思いtableViewます。とてもシンプルなはずですが、髪を引き裂いています。テーブルビューは完全に機能し、アラートは完全に機能します。のラベルを再表示できないようですtableViewtableViewどこかで、私がやっていることは推奨されていないというエラーが表示され続けます。

これらは、私のカスタム セル クラスのアウトレットです。

class TransportCell: UITableViewCell {

@IBOutlet weak var transportationTitleLabel: UILabel!
@IBOutlet weak var typeLabel: UILabel!
@IBOutlet weak var transportationImage: UIImageView!
}

これが私のテーブルビューコントローラーです:

class TransportationTableViewController: UITableViewController {

struct TransportItem
{
    var label: String
    var subTitle: String
    var isHidden: Bool
}

let TransportationItems = [TransportItem(label: "Bus", subTitle: "I have used this type before.", isHidden: true),
    TransportItem(label: "Helicopter", subTitle: "I have used this type before.", isHidden: false),
    TransportItem(label: "Truck", subTitle: "I have used this type before.", isHidden: true),
    TransportItem(label: "Boat", subTitle: "I have used this type before.", isHidden: true),
    TransportItem(label: "Bicycle", subTitle: "I have used this type before.", isHidden: true),
    TransportItem(label: "Motorcycle", subTitle: "I have used this type before.", isHidden: true),
    TransportItem(label: "Plane", subTitle: "I have used this type before.", isHidden: true),
    TransportItem(label: "Train", subTitle: "I have used this type before.", isHidden: true),
    TransportItem(label: "Car", subTitle: "I have used this type before.", isHidden: true),
    TransportItem(label: "Scooter", subTitle: "I have used this type before.", isHidden: true),
    TransportItem(label: "Caravan", subTitle: "I have used this type before.", isHidden: true)]



override func viewDidLoad() {
    super.viewDidLoad()
}

// MARK: - Table view data source

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {

    return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return TransportationItems.count
}


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell:TransportCell = tableView.dequeueReusableCellWithIdentifier("transportCell", forIndexPath: indexPath) as TransportCell

    var item = TransportationItems[indexPath.row]

    cell.transportationTitleLabel.text = item.label
    cell.typeLabel.text = item.subTitle
    cell.typeLabel.hidden = item.isHidden

    var imageName = UIImage(named:item.label)
    cell.transportationImage.image = imageName

    return cell
}

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
    var item = self.TransportationItems[indexPath.row]

    let alert = UIAlertController(title: "Used this transport?", message: "You selected \(item.label)", preferredStyle: UIAlertControllerStyle.Alert)

    alert.addAction(UIAlertAction(title: "No", style: UIAlertActionStyle.Cancel, handler: nil))
    alert.addAction(UIAlertAction(title: "Yes", style: UIAlertActionStyle.Default, handler: { alertAction in

        println(item.label)
        println(item.subTitle)

        var customCell = self.tableView.cellForRowAtIndexPath(indexPath) as TransportCell
        customCell.typeLabel.hidden = false


    }))
    self.presentViewController(alert, animated: true, completion: nil)
}
4

1 に答える 1