Присутствует всплывающее окно в ячейке просмотра таблицы

Я хочу представить всплывающее окно в ViewController ячейки Tableview. Я хочу этого, потому что в TableViewCell есть кнопка, которая требует всплывающего окна при нажатии. Помогите, пожалуйста! Если я запустил это, я получаю сообщение об ошибке:

InstagramClone.SignInViewController: 0x102e22b30 whose view is not in the window hierarchy!

@objc func kik (){
        if let Kik = user?.KikUsername {
            // Prepare the popup assets
            let title = "Kik Username"
            let message = "The Kik username from \(user?.username) is: \(Kik)."
            let image = UIImage(named: "kik-icon.jpg")

            // Create the dialog
            let popup = PopupDialog(title: title, message: message, image: image)

            // Create buttons
            let buttonOne = CancelButton(title: "Cancel") {
                print("You canceled")
            }

            // This button will not the dismiss the dialog
            let buttonTwo = DefaultButton(title: "Copy Kik Username to clipboard!", dismissOnTap: false) {
                UIPasteboard.general.string = Kik
            }
            popup.addButtons([buttonOne, buttonTwo])

            // Present dialog
            self.window?.rootViewController?.present(popup, animated: true, completion: nil)
        }

    }

вы хотите открыть контроллер представления при нажатии кнопки ячейки tableView?

Wings 11.04.2018 13:47
self.window?.rootViewController, это SignInViewController. Представлен не текущий ViewController, поэтому вы получаете сообщение об ошибке. Вам нужно указать текущему контроллеру представления (в каком отверстии ячейка) это сделать. Для этого вы можете использовать шаблон закрытия или делегирования.
Larme 11.04.2018 13:56

@V_rohit У меня есть ячейка tableView, а в ячейке tableView есть кнопка. Я хочу, чтобы всплывающее окно появлялось при нажатии кнопки внутри ячейки tableView!

Vine Tube 11.04.2018 14:23

Вы можете сделать это с помощью протокола и делегатов

Wings 11.04.2018 14:27

Как? У вас есть пример?

Vine Tube 11.04.2018 14:33

Делегат: stackoverflow.com/a/40806707/1801544 Закрытие: stackoverflow.com/a/43474733/1801544

Larme 11.04.2018 14:42
0
6
1 154
1

Ответы 1

Думаю, вам просто нужно добавить всплывающее окно в главное окно:

self.view.addSubview(popup)

Я получил сообщение об ошибке: значение типа HomeTableViewCell не имеет элемента view

Vine Tube 11.04.2018 14:22

Другие вопросы по теме