Могу ли я получить данные с метки из одного VC и передать данные в текстовое поле из другого VC [duplicate]

Я буду повторно использовать пример данных из @PaulRougieux

x <- data_frame(i = c("a","b","c"), j = 1:3)
y <- data_frame(i = c("b","c","d"), k = 4:6)
z <- data_frame(i = c("c","d","a"), l = 7:9)

Вот короткое и сладкое решение, использующее purrr и tidyr

library(tidyverse)

 list(x, y, z) %>% 
  map_df(gather, key=key, value=value, -i) %>% 
  spread(key, value)
11
задан auth private 23 July 2015 в 00:38
поделиться

4 ответа

Во время выполнения Segue ваш UIImageView не инициализируется, поэтому вы не можете назначить ему изображение, наилучшей практикой было бы передать UIImage и инициализировать ваш UIImageView в viewDidLoad.

, поэтому в вашем классе ListPage свойство типа UIImage изменит вашу prepareForSegue строку как

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

    if segue.identifier == "toBrowsePage" {


        var itemToAdd = segue.destinationViewController as! ListPage

        itemToAdd.image = browsingImage.image

        }

    }

в viewDidLoad или viewDidAppear вашего пункта назначения viewController вы сделаете что-то вроде этого

browsingImage.image = image
0
ответ дан Harshal Valanda 17 August 2018 в 20:05
поделиться

IBOutlets недоступны в вашем текущем контроллере. Выходы еще не инициализированы, так как ваше второе представление еще не загружено.

Вместо этого вы можете создать переменную UIImage во втором viewController и присвоить ей значение в файле prepareForSegue.

И во втором режиме viewController viewDidLoad присвойте это значение вашей розетке ImageView.

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

    if segue.identifier == "toBrowsePage" {
        let destination = segue.destinationViewController as! ListPage
        destination.receivedImage = postingImage.image
    }
}

В следующем viewController объявить переменную с именем

@IBOutlet weak var postingImage: UIImageView!
var receivedImage : UIImage?

В методе viewDidLoad

postingImage.image = receivedImage
1
ответ дан iPhoneDeveloper 17 August 2018 в 20:05
поделиться

Из вашего описания, browsingImage находится в целевом viewController, поэтому в этой строке

itemToAdd.postingImage.image = browsingImage.image

Вы передаете изображение цели в исходное изображение

1
ответ дан Leo 17 August 2018 в 20:05
поделиться

В prepareForSegue вы не можете получить доступ к @IBOutlet s контроллера точки назначения, потому что они еще не настроены. Вы должны назначить изображение свойству контроллера представления назначения, а затем переместить его на место в viewDidLoad:

В контроллере представления источника:

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

    if segue.identifier == "toBrowsePage" {
        let dvc = segue.destinationViewController as! ListPage
        dvc.newImage = postingImage.image
    }
}

В режиме назначения контроллер:

class ListPage: UIViewController {
    @IBOutlet weak var browsingImage: UIImageView!
    var newImage: UIImage!

    override func viewDidLoad() {
        super.viewDidLoad()
        browsingImage.image = newImage
    }
}
17
ответ дан vacawama 17 August 2018 в 20:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: