CoocaPod: значение типа » …..» не имеет члена » ….», но должно иметь

#ios #swift #xcode #cocoapods

#iOS #swift #xcode #cocoapods

Вопрос:

Я использую этот cocoapod для небольшого всплывающего окна, чтобы сбросить все сохраненные пользовательские ошибки. Поэтому я хочу, чтобы кнопки «Да» и «Нет» всплывающего окна были выровнены по горизонтали (по умолчанию по вертикали). Это мой код:

 resetBtn.touchUpInside{ [self] in
        let dialogAppearance = PopupDialogDefaultView.appearance()
        let buttonAppearance = DefaultButton.appearance()
        let title = "Do you really want to reset this game?"
        let popup = PopupDialog(title: title)
        let yesBtn = DefaultButton(title: "Yes", height: 60) {
            self.click()
            defaults.removePersistentDomain(forName: Bundle.main.bundleIdentifier!)
            defaults.synchronize()
        }
        let noBtn = DefaultButton(title: "No", height: 60) {
            self.click()
        }
        popup.addButton(yesBtn)
        popup.addButton(noBtn)
        dialogAppearance.messageFont = UIFont(name: "Nunito-Black", size: 18)!
        dialogAppearance.messageTextAlignment = .natural
        dialogAppearance.titleFont = UIFont(name: "Nunito-Black", size: 22)!
        buttonAppearance.titleFont = UIFont(name: "Nunito-Black", size: 22)!
        let vc = popup.viewController as! PopupDialogDefaultViewController //!!! 
        vc.buttonAlignment = .horizontal /// Cannot infer contextual base in reference to member 'horizontal', Value of type 'PopupDialogDefaultViewController' has no member 'buttonAlignment'
        self.present(popup, animated: true, completion: nil)
    }
  

Как вы можете видеть прямо здесь, создатель разместил кнопки горизонтально с помощью этого:

     let vc = popup.viewController as! PopupDialogDefaultViewController
    vc.buttonAlignment = .horizontal
  

Но когда я делаю именно это, компиляторы говорят: «Невозможно определить контекстную базу по ссылке на элемент’horizontal'», «Значение типа’PopupDialogDefaultViewController’ не имеет члена ‘buttonAlignment’«… как указано в моем коде.

Что мне делать?

Комментарии:

1. Что такое PopupDialogDefaultViewController ? Есть ли у него свойство с именем buttonAlignment ?

2. @Larme Это конечный общедоступный класс Cocoapod, и у меня нет свойства с именем buttonAlignment . Но PopupDialog имеет

3. Но, как вы можете видеть в последней гиперссылке, в описании модуля сказано так же, как и я

4. Я понимаю. Я думаю: vc.view.buttonAlignment может сработать, может понадобиться (vc.view как! PopDialog).buttonliignment`

5. Затем говорится, что «Приведение из ‘UIView?’ к несвязанному типу ‘PopupDialog’ всегда завершается неудачей». Поскольку представление не является всплывающим окном.

Ответ №1:

Решаемая:

Просто напишите напрямую
let popup = PopupDialog(title: title, message: message, buttonAlignment: .horizontal) .