2017-05-29 46 views
0
的setTitle

enter image description hereIBOutlet中收藏按鈕 -

我有一些按鈕,都具有相同的作用,所以我使用了一個集查看

@IBOutlet var playerButtons: [UIButton]! 

我希望使用選擇器視圖將允許我選擇一個名稱,然後設置按鈕的標題,但我似乎無法找到如何在集合視圖中實現這一點。

我試圖用講解員的功能似乎工作雖然

open func setTitle(_ title: String?, for state: UIControlState) 

我完整的代碼

import UIKit 
import Firebase 


class TeamSelection: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource { 

    //IBOutlets Collection for Player Names 
    @IBOutlet var playerButtons: [UIButton]! 
    @IBOutlet var Player: [UIView]! 
    @IBOutlet weak var homeTeamLabel: UILabel! 
    @IBOutlet weak var pickerView: UIPickerView! 

    var player = [Players]() 
    var club: Clubs! 
    var clubName = String() 
    var playerFirstName = String() 
    var playerLastName = String() 

    // Will be removed and Firebase used in place 
    var players = ["player 1", "player 2", "player 3", "and so on"] 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     pickerView.dataSource = self 
     pickerView.delegate = self 

     CLUB_KEY = "" 
     CLUB_KEY = club.clubKey 

     self.navigationItem.title = club.clubName 

     DataService.ds.REF_PLAYERS.queryOrdered(byChild: "clubKey").queryEqual(toValue: club.clubKey).observe(.value, with: { (snapshot) in 

      print("PLAYERS_COUNT: \(snapshot.childrenCount)") 
      print("PLAYERS_SNAPSHOT: \(snapshot)") 

      self.player = [] 
      if let snapshots = snapshot.children.allObjects as? [FIRDataSnapshot] { 

       for snap in snapshots { 
        if let playerDict = snap.value as? Dictionary<String, AnyObject> { 
         let key = snap.key 

         let players = Players(playerKey: key, dictionary: playerDict) 
         self.player.append(players) 

        } 
       } 
      } 
//   self.tableView.reloadData() 
     }) { (error) in 
      print(error.localizedDescription) 
      print("CHET: local error") 
     } 
    } 

    func numberOfComponents(in pickerView: UIPickerView) -> Int { 

     return 1 
    } 

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 

     return players.count 
    } 

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 

     return players[row] 
    } 

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 

//  self.pickerView.isHidden = true 

     // Missing command 
      playerButtons.setTitle 
    } 

    //IBActions Collection for Player Names 
    @IBAction func playerSelectionAction(_ sender: UIButton) { 

     sender.setTitle("buttonName", for: .normal) 

     let sender = sender.tag 
     print(sender) 


    }  
} 
+0

可能的複製[更改UIButton以編程方式快速的文本](https://stackoverflow.com/questions/26326296/changing-text-of-uibutton-programmatical ly-swift) – Honey

+0

重複鏈接如下:在'viewDidLoad'中進行更改 – Honey

+0

我沒有可用的.setTitle – Chet

回答

0

排序與以下

@IBAction func playerSelectionAction(_ sender: UIButton) { 

     let senderINT = sender.tag 

     let selectedBtn = self.view.viewWithTag(senderINT) as! UIButton 

     selectedBtn.setTitle("", for: .normal) 

     print(sender) 

    } 
+1

標記是反模式。 – Sulthan

+0

反模式,不確定你的意思 – Chet

+1

使用標籤是一種不好的做法。總是比使用標籤更好的解決方案。 – Sulthan