Я пытаюсь реализовать кнопки воспроизведения/паузы и остановки на панели инструментов для простого приложения секундомера. См. Код на http://swiftstub.com/722226472. Я испытываю странное поведение: сначала кнопка воспроизведения ничего не делает. Если я нажимаю кнопку остановки, значок исчезает, а затем воспроизведение/пауза переключается и работает правильно. Предложения? Я использую последний быстрый и XcodeДругая, но конкретная проблема с воспроизведением/паузой
ответ
цель должна быть самостоятельным (не ноль) в обеих этих линиях:
var playButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Play, target: nil, action: Selector("playButtonPressed"))
var pauseButton = UIBarButtonItem(barButtonSystemItem:
UIBarButtonSystemItem.Pause, target: nil, action: Selector("pauseButtonPressed"))
EDIT (на основе комментариев), и вы должны переместить эти строки к инициализации(), потому что вы не можете инициализировать использование self в var, инициализированном таким образом.
var playButton: UIBarButtonItem!
var pauseButton: UIBarButtonItem!
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
playButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Play, target: self, action: Selector("playButtonPressed"))
pauseButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Pause, target: self, action: Selector("pauseButtonPressed"))
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let toolBarItems = [playButton]
toolbar.setItems(toolBarItems, animated: false)
}
Поскольку вы никогда в них добавлены, чтобы начать с того, я подозреваю, вы просто другую кнопку в раскадровку, не зацепили ни к чему. Затем вы заменяете их при первом вызове, чтобы остановить.
У меня есть только две кнопки для бара: игра и остановка. Если я заменил nil на self в target, я получаю: (!) 'Невозможно преобразовать значение типа 'NSObject ->() -> ViewController' в ожидаемый тип аргумента 'AnyObject?' ' –
Я добавил дополнительную информацию - переместите var инициализация init(), чтобы вы могли получить доступ к себе. –
Спасибо, Лу. Я попытался переместить их в init(), но не мог понять, как это сделать правильно. - Извини, я только на третий день обучения Свифта. –
- 1. Другая проблема с кодировкой
- 2. Другая проблема с перезагрузкой таблиц
- 3. Другая проблема с абсолютным импортом
- 4. Div следующая другая проблема
- 5. PHP другая проблема сортировки
- 6. Другая вертикальная центровка проблема
- 7. DateTime проблема с PHP - Хранение Конкретная дата
- 8. Objectify/GAE - конкретная проблема денормализации
- 9. Другая проблема сложности времени
- 10. Конкретная проблема с клонированием git через ssh
- 11. Конкретная проблема с итерацией в Rails
- 12. Facebook share button - конкретная проблема с изображением
- 13. Конкретная проблема с регулярным выражением, требующая помощи
- 14. Какова конкретная проблема с множественным наследованием?
- 15. Другая проблема JNI UnsatisfiedLinkError DLL
- 16. Другая проблема с кодировкой php и MySQL
- 17. Другая проблема выравнивания вывода C++
- 18. Другая проблема обратного прокси nginx
- 19. Другая проблема с распределением пространственных массивов C#
- 20. Ссылка css другая проблема с цветовой схемой
- 21. Конкретная проблема при разработке моего jquery menu
- 22. Yii 1 конкретная проблема сортировки полей
- 23. Конкретная проблема преобразования C# в VB
- 24. Firebase пользовательской проблема аутентификации маркеров другая аудитория
- 25. Перенаправление на страницу, но конкретная вкладка
- 26. Другая проблема кодирования JQuery, на IE
- 27. Java Runtime Environment или другая проблема?
- 28. Другая ошибка DataContext. Почему это проблема?
- 29. применение текстуры другая проблема directx C++
- 30. Другая проблема Internet Explorer ... JQuery события
Вы можете сравнить свой код с другими, опубликованными в таких блогах, как Ray, а не спрашивать здесь. –
Пожалуйста, не связывайтесь снаружи с кодом - эти сайты, как правило, уходят - поставьте соответствующий код в вопрос. –