Не удается передать данные в ContainerView - PullRequest
1 голос
/ 14 февраля 2020

Я пробовал 2 метода для передачи данных из ViewController в ContainerView, с и без segue Вот без метода segue

ViewController

 class DetailPostBookReviewVC: UIViewController {

        var postid: String!

        @IBAction func Menubutton(_ sender: Any) {

        print(postid!)

        let storyboard = UIStoryboard(name: "Main", bundle: nil)

        let vc = storyboard.instantiateViewController(withIdentifier: "MenuBookReviewVC") as! MenuBookReviewVC

        vc.favpostid = postid
 }

ContainerView

class MenuBookReviewVC: UIViewController {

    var favpostid = String()
     @IBAction func Deletepost(_ sender: Any) {
        print(favpostid)
    }
}

результат: favposid имеет значение Nill

ОБНОВЛЕНИЕ это метод segue

class DetailPostBookReviewVC: UIViewController {

     var postid: String! 

     @IBAction func Menubutton(_ sender: Any) {       
        print(postid!)

     func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?){

    if (segue.identifier == "toMenuBookReviewVC") { //"toMenuBookReviewVC" is identifier 

       let vc = segue.destination as! MenuBookReviewVC
        vc.favpostid = postid!
    }
}

Ответы [ 3 ]

1 голос
/ 14 февраля 2020

Передайте ваши данные, как. Подготовка пользователя (для: отправитель:)

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if
        segue.identifier == "MyIdentifierInStorybiard", // Set that
        let controller = segue.destination as? MenuBookReviewVC {
        controller.favpostid = postid
    }
}
0 голосов
/ 14 февраля 2020

Для передачи данных в представление контейнера вы можете использовать это

UserDefaults.standard.set (значение, forKey: "SomeKey")

после использования ваших данных Вы можете очистить это значение по умолчанию.

UserDefaults.standard.set ("", forKey: "SomeKey")

0 голосов
/ 14 февраля 2020

Я думаю, что ваш postid не является строковым типом, поэтому выведите нулевое значение

...