Как я могу вызвать массив URL-адресов в @IBAction? - PullRequest
1 голос
/ 08 мая 2020

Errors

Новое в Swift - медленно, но верно начинаю полностью понимать это.

Как мне go вызвать структурированный массив URL-адресов weeks.urls[0] в @IBAction? Я приложил снимок экрана с ошибкой и свой код для WeekDetalViewController.


class WeekDetailViewController: UIViewController {

    var week: WeekInfo!


    @IBOutlet weak var lessonCompleteBtn: UIButton!
    @IBOutlet weak var Button1: UIButton!
    @IBOutlet weak var Button2: UIButton!
    @IBOutlet weak var Button3: UIButton!
    @IBOutlet weak var Button4: UIButton!


    override func viewDidLoad() {
        super.viewDidLoad()


        lessonCompleteBtn.backgroundColor = UIColor.gray
        lessonCompleteBtn.layer.cornerRadius = 20

    }
    @IBAction func lessonBtnTapped(_ sender: AnyObject) {
        sender.setTitle("PSET Complete!", for: [])
        if lessonCompleteBtn.backgroundColor == UIColor.gray{
            lessonCompleteBtn.backgroundColor = UIColor(red: 17/255, green: 107/255, blue: 0/255, alpha: 1.0)
        }
        else if lessonCompleteBtn.backgroundColor == UIColor(red: 17/255, green: 107/255, blue: 0/255, alpha: 1.0){
            sender.setTitle("Complete PSET!", for: [])
            lessonCompleteBtn.backgroundColor = UIColor.gray
        }
    }

    @IBAction func Button1(_ sender: Any) {
        UIApplication.shared.open(URL(week.urls[0])!)

    }
    @IBAction func Button2(_ sender: Any) {
        UIApplication.shared.open(URL(week.urls[1])!)
    }
    @IBAction func Button3(_ sender: Any) {
        UIApplication.shared.open(URL(week.urls[2])!)
    }
    @IBAction func Button4(_ sender: Any) {
       UIApplication.shared.open(URL(week.urls[3])!)
    }


    }```



Ответы [ 2 ]

1 голос
/ 08 мая 2020

Удалите принудительное разворачивание, и вы готовы go.

@IBAction func Button1(_ sender: Any) {
    UIApplication.shared.open(week.urls[0])

}
@IBAction func Button2(_ sender: Any) {
    UIApplication.shared.open(week.urls[1])
}
@IBAction func Button3(_ sender: Any) {
    UIApplication.shared.open(week.urls[2])
}
@IBAction func Button4(_ sender: Any) {
   UIApplication.shared.open(week.urls[3])
}

При условии, что urls равно [URL].

0 голосов
/ 08 мая 2020

Здесь вы go ... у вас уже есть URL-адрес в вашем массиве ... поэтому нет необходимости создавать их снова ... А также они не являются дополнительными ... поэтому вам не нужно использовать принудительное развертывание

 @IBAction func Button1(_ sender: Any) {
        UIApplication.shared.open(week.urls[0])

    }
    @IBAction func Button2(_ sender: Any) {
        UIApplication.shared.open((week.urls[1])
    }
    @IBAction func Button3(_ sender: Any) {
        UIApplication.shared.open(week.urls[2])
    }
    @IBAction func Button4(_ sender: Any) {
       UIApplication.shared.open(week.urls[3])
    }

Лучше использовать одну функцию вместо 4 ... просто установите тег кнопок

 @IBAction func ButtonTapped(_ sender: UIButton) {
            UIApplication.shared.open(week.urls[sender.tag])

        }
...