2017-08-20 18 views
0

私は、情報を追加するためにテキスト入力の新しいビューにあなたを連れて行く追加ボタンがあります。追加ボタンを押すと、テーブルビューに戻り、すべての入力がラベルに追加されます。私は、現在の時間を私が作成したdateStampラベルに引っかけることに問題があります。誰も助けることができますか?あなたは、デリゲートを使用することができ、これを行うためにはテーブルビューのラベルに現在の時間を追加する方法cell swift 3

メインコントローラ

var dateStamp = Date() 
var clientName = [""] 
var projecDescript = [""] 

// Custom cell to make all input fields custom 
class CustomCell: UITableViewCell { 
    //Make your outlets here, connect the outlets from cell in your storyboard 

    @IBOutlet var clientNameLabel: UILabel! 
    @IBOutlet var descriptionLabel: UILabel! 
    @IBOutlet var dateStamp: UILabel! 

} 

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 

    @IBOutlet var clientTableList: UITableView! 

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return (clientName.count) 
     return (projecDescript.count) 
    } 

    // This is the new items added into the inputs 
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "clientCell", for: indexPath) as! CustomCell 

     // Adds Clients Name 
     let companyName = clientName[indexPath.row] 
     cell.clientNameLabel?.text = companyName 

     // Adds Clients Description 
     let descriptionName = projecDescript[indexPath.row] 
     cell.descriptionLabel?.text = descriptionName 



     return cell 
    } 

    func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool { 
     return true 
    } 

    override func viewDidAppear(_ animated: Bool) { 
     clientTableList.reloadData() 
    } 

前記第二のコントローラ

答えて

3
let timeStamp = "\(DateFormatter.localizedString(from: Date(), dateStyle: .long, timeStyle: .long))" 

あなたは今日

のようにフォーマットを変換したい場合は、単にその機能に日付を渡すと、それは3週間前のような

func relativePast(for date : Date) -> String { 

    let units = Set<Calendar.Component>([.year, .month, .day, .hour, .minute, .second, .weekOfYear]) 
    let components = Calendar.current.dateComponents(units, from: date, to: Date()) 

    if components.year! > 0 { 
     return "\(components.year!) " + (components.year! > 1 ? "years ago" : "year ago") 

    } else if components.month! > 0 { 
     return "\(components.month!) " + (components.month! > 1 ? "months ago" : "month ago") 

    } else if components.weekOfYear! > 0 { 
     return "\(components.weekOfYear!) " + (components.weekOfYear! > 1 ? "weeks ago" : "week ago") 

    } else if (components.day! > 0) { 
     return (components.day! > 1 ? "\(components.day!) days ago" : "Yesterday") 

    } else if components.hour! > 0 { 
     return "\(components.hour!) " + (components.hour! > 1 ? "hours ago" : "hour ago") 

    } else if components.minute! > 0 { 
     return "\(components.minute!) " + (components.minute! > 1 ? "minutes ago" : "minute ago") 

    } else { 
     return "\(components.second!) " + (components.second! > 1 ? "seconds ago" : "second ago") 
    } 
} 
を言って、文字列を返します。
+0

これは私が探していたありがとうございました!私が15の評判を持つまで投票できません。申し訳ありません! 1分前にこれを言うように短い手の方法がありますか? 1日前。 2週間前など、それともこの機能を構築する必要がありますか –

+0

はい、これを行うことができます.... –

+0

私の編集した回答を確認してください –

0

import UIKit 

class AddInvoice: UIViewController { 

    @IBOutlet var clientNameInput: UITextField! 
    @IBOutlet var descriptionNameInput: UITextView! 



    @IBAction func addInvoice(_ sender: Any) { 

     if clientNameInput.text != "" && descriptionNameInput.text != "" 
     { 
      clientName.append(clientNameInput.text!) 
      //clientInput.text = "" 

      projecDescript.append(descriptionNameInput.text!) 
      //descriptionFieldInput.text = "" 


      _ = navigationController?.popViewController(animated: true) 
     } 
    } 
} 
!少なくとも、私が学んだことがそれです。

Passing Data using the Delegate Method

+0

いいえ私はその部分を取得します。それは私が苦労しているタイムスタンプを追加します。 –

+0

タイムスタンプの取得に問題がありますか?タイムスタンプはありますが、ラベルに追加する方法はわかりません。 その2番目のケースの場合は、ユーザーが追加ボタンをクリックした時点でビデオに記載されているとおり、現在のタイムスタンプを取得して返信してから、ラベル – Siyavash

+0

に追加します。最初のタイムスタンプ。私はいくつかのことをオンラインで見てきました。私が試してみることのすべてはうまくいかないようです。私はvar dateStamp = Date()を作った。今私は私がインボイスの追加ボタンを押すとそれを取得しようとしています –

関連する問題