swiftの値渡しの実装を試みている初心者です。
FirstSettingViewControllerにあるUISliderで設定した値(音量)をSecondViewControllerに設置してあるアラームが鳴った時の音量として実装したいです。自分なりの値渡しのコードを書いてみましたがうまくいきません。
ご教授頂ければ嬉しいです。よろしくお願いします。
FirstSettingViewController
1import UIKit 2import AVFoundation 3 4class FirstSettingViewController: UIViewController { 5 6 var audioPlayer: AVAudioPlayer! 7 @IBOutlet weak var volumeSlider: UISlider! 8 @IBOutlet weak var volumeLabel: UILabel! 9 @IBAction func volumeChange(_ sender: UISlider) 10 { 11 let value = round(sender.value * 100)/1 12 volumeSlider.value = sender.value 13 volumeLabel.text = "(value)" 14 audioPlayer.volume = volumeSlider.value 15 audioPlayer.play() 16 } 17 18 override func prepare(for segue: UIStoryboardSegue, sender: Any?) 19 { 20 if segue.identifier == "setVolume1" 21 { 22 let SecondViewController = segue.destination as! SecondViewController 23 SecondViewController.audioPlayer = FirstSettingViewController.volumeChnage 24//ここにCannot assign value of type '(FirstSettingViewController) -> (UISlider) -> ()' to type 'AVAudioPlayer!'というエラーが出ています。 25 } 26 } 27 28 override func viewDidLoad() { 29 super.viewDidLoad() 30 31 if let url=Bundle.main.url(forResource:"Alarm",withExtension:".mp3" ) 32 { 33 34 do { 35 audioPlayer = try AVAudioPlayer(contentsOf:url) 36 audioPlayer?.play(atTime:1 * 10) 37 38 }catch{ 39 audioPlayer = nil 40 } 41 }else{ 42 fatalError("Url is nil") 43 } 44 45 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/10 07:00
2018/10/10 08:05