質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.21%

Table Viewにボタンをつける

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 1,089

Takoyaki_oko

score 19

前提・実現したいこと

ここに質問したいことを詳細に書いてください
(例)PHP(CakePHP)で●●なシステムを作っています。  
■■な機能を実装中に以下のエラーメッセージが発生しました。

Xcodeでswiftを使って世界時計のアプリを作ろうと思っているのですが、画面上にTable Viewを配置してその中に国名を表示したボタンをいくつも作ってそこの現在の時刻を表示したいです。
前にストップウォッチのアプリを作って、その時もTable Viewを配置してボタンを押した時にその時のタイムを次々記録していくものを作りました。iPhoneに最初から入っているアプリみたいな感じです。そこで、ストップウォッチのアプリを今回作ろうと思っているアプリに利用しようと思ったのですが、Table Viewにボタンを配置したことがないので、やり方が全くわかりません。下記に載せたのはそのストップウォッチのアプリです。ボタンなどはプログラム上で作成せずにstoryboardで作成してから結びつけました。ご回答よろしくお願いします。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

```ここに言語を入力
ここにご自身が実行したソースコードを書いてください

import UIKit

class SecondViewController: UIViewController {

//タイムラベル
@IBOutlet weak var Timelabel: UILabel!

//スタートボタン
@IBOutlet weak var startButton: UIButton!

//スプリットボタン
@IBOutlet weak var splitButton: UIButton!

//リセットボタン
@IBOutlet weak var resetButton: UIButton!

//テーブル
@IBOutlet weak var tableView1: UITableView!

var timeArray:[String] = []
var countNum = 0
var timerRunning = false
var timer = NSTimer()

override func viewDidLoad() {
super.viewDidLoad()

splitButton.enabled = false
// Do any additional setup after loading the view, typically from a nib.
}

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

func update() {
countNum += 1
timeFormat(countNum)
}

func timeFormat(countNum:Int) {
let ms = countNum % 100
let s = (countNum - ms) / 100 % 60
let m = (countNum - s - ms) / 6000 % 3600
self.Timelabel.text = String(format: "%02d:%02d.%02d", m, s, ms)

}
//スタートボタン押された時
@IBAction func startTimer(sender: AnyObject) {

if timerRunning == false {
startButton.setImage(UIImage(named: "stop.png"), forState: UIControlState.Normal)
timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: #selector(SecondViewController.update), userInfo: nil, repeats: true)
timerRunning = true
resetButton.enabled = false
splitButton.enabled = true

} else{
timer.invalidate()
startButton.setImage(UIImage(named: "start.png"), forState: UIControlState.Normal)
timerRunning = false
resetButton.enabled = true
splitButton.enabled = false
}

}

//ストップボタン押された時
@IBAction func stopTimer(sender: AnyObject) {
if timerRunning == true {
timeArray.insert(Timelabel.text!, atIndex: 0)
tableView1.reloadData()
}
}

//リセットボタン押された時
@IBAction func resetTimer(sender: AnyObject) {
countNum = 0
Timelabel.text = "00:00.00"
timeArray = []
tableView1.reloadData()
startButton.setImage(UIImage(named: "start.png"), forState: UIControlState.Normal)
}

/// セルの個数を指定するデリゲートメソッド(必須)
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return timeArray.count
}

/// セルに値を設定するデータソースメソッド(必須)
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

// セルを取得する
let cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier("tableCell", forIndexPath: indexPath)

// セルに表示する値を設定する

let label2 = tableView.viewWithTag(1) as! UILabel
label2.text = "\(timeArray[indexPath.row])"

return cell
}
}

試したこと

課題に対してアプローチしたことを記載してください

補足情報(言語/FW/ツール等のバージョンなど)

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • 退会済みユーザー

    2016/08/19 16:23

    こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

  • _Kentarou

    2016/08/19 16:46

    Table Viewにボタンをつけると言うのは、UITableViewCellにボタンを乗せるということですか?

    そうでしたら、以前のコードでもラベルを乗せているようなので、同じ用にボタンを配置すれば良いのではないでしょうか?

    キャンセル

  • Takoyaki_oko

    2016/08/20 09:59

    ありがとうございます

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.21%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る