2016-02-18 8 views
1

Я пытаюсь создать счетчик. Идея довольно проста, вы нажимаете кнопку «играть», и как только вы нажимаете ее, она должна исчезнуть и стать значком «пауза», что вызовет другое действие.Изменить значок BarButtonItem при нажатии

Я думал, что установка статуса счетчика для счетчика и изменение значка (только с одной кнопкой) сделают трюк, но у меня нет подсказки, как я могу установить изображение кнопки для «паузы» или любого другого, что появляется в раскрывающемся меню, когда вы создаете его с панели раскадровки.

Вот код:

@IBOutlet weak var playButton: UIBarButtonItem! 
var timer = NSTimer() 
var currentStatus = "stopped" 


@IBAction func playAction(sender: AnyObject) { 
    if (currentStatus == "stopped"){ 
     timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("increaseTimer"), userInfo: nil, repeats: true) 
     currentStatus = "running" 
     // change button icon (playButton) to Stop 
    } 
    else { 
     currentStatus = "stopped" 
     timer.invalidate() 
     // change button icon (playButton) to Play 
    } 

} 
+0

Можете ли вы выслать код вашего пункта на панели инструментов, если у вас его есть? Если у вас нет подключенной розетки, я советую вам сделать ее. – tktsubota

+0

Да, его связанный, я его отредактировал, и теперь вы можете его увидеть (playButton var) –

ответ

1

Вы можете установить стиль кнопки, как это:

//setButton to play 
yourBarButtonItem = UIBarButtonItem(UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Play, target: self, action: "TheMethodThatTheButtonShouldCall"), animated: true) 
//setButton to stop 
yourBarButtonItem = UIBarButtonItem(UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Stop, target: self, action: "TheMethodThatTheButtonShouldCall"), animated: true) 
+0

Я пропустил некоторые импорт? он говорит неразрешенный идентификатор «BarButtonitem»: S –

+0

@ERodriguez, пожалуйста, проверьте обновленный код выше. –

+0

@ERodriguez Теперь он должен работать без ошибок –

1

Вы можете установить стиль кнопки с массивом, как это:

func addCustomNavigationItemAtLeftAndRightSide(leftButtonItems:[UIBarButtonItem], rightButtonItems:[UIBarButtonItem]) { 

    self.navigationItem.leftBarButtonItems = leftButtonItems 
    self.navigationItem.rightBarButtonItems = rightButtonItems 
} 

You можно использовать в стиле:

let leftButtonItem = UIBarButtonItem(image: UIImage(named: "ic_top_back"), style: .Plain, target: self, action: "onBackButtonClicked:") 
    addCustomNavigationItemAtLeftAndRightSide([leftButtonItem], rightButtonItems: []) 
Смежные вопросы