Как разделить изображение, загруженное из хранилища Firebase, между разными представлениями?

Когда он находится на стороне сервера, используйте веб-службы - возможно, RESTful с JSON.

  • создает веб-службу (например, с помощью Tomcat )
  • вызывать свой URL из JavaScript (например, с помощью JQuery или dojo)

Когда Java-код находится в апплете, вы можете использовать мост JavaScript. Мост между языками программирования Java и JavaScript, известный неофициально как LiveConnect , реализован в плагине Java. Раньше функциональность LiveConnect, зависящая от Mozilla, такая как возможность вызова статических методов Java, создания экземпляров новых объектов Java и ссылок на сторонние пакеты из JavaScript, теперь доступна во всех браузерах.

Ниже приведен пример из документации. Посмотрите на methodReturningString.

Код Java:

public class MethodInvocation extends Applet {
    public void noArgMethod() { ... }
    public void someMethod(String arg) { ... }
    public void someMethod(int arg) { ... }
    public int  methodReturningInt() { return 5; }
    public String methodReturningString() { return "Hello"; }
    public OtherClass methodReturningObject() { return new OtherClass(); }
}

public class OtherClass {
    public void anotherMethod();
}

Веб-страница и код JavaScript:




3
задан Vaisakh KP 28 February 2019 в 13:06
поделиться

3 ответа

Если у вас есть только одно или два изображения, просто сохраните их в userdefault, а затем вы можете получить доступ в любом viewController. Сохраняйте image как data в userdefault всякий раз, когда вы хотите использовать просто преобразование данных в изображение и используйте его, см. следующий код для преобразования данных в изображение

let image = UIImage(data: imageData)
0
ответ дан AtulParmar 28 February 2019 в 13:06
поделиться

Вы можете сделать

class Service { 
   static let shared = Service()  
   var image1:UIImage?
   var image2:UIImage?
   let imageLink = "//////" // or with SDWebImage
}

if let pic = UIImage(data: data!){
    Service.shared.image = pic
}

Или использовать SDWebImage и поделиться ссылкой, вы также можете создать глобальную переменную вроде

var image:UIImage? 

, но это не рекомендуется поскольку у него нет группировки, позволяющей разработчику знать, что он является локальным / instance / global, то это сбивает с толку, в отличие от синглтона

0
ответ дан Sh_Khan 28 February 2019 в 13:06
поделиться

Просто объявите UIImage глобально в вашем классе и в вашей функции, где вы устанавливаете imageHolder, назначьте загруженное изображение глобальному изображению и используйте его где угодно.

UIImage image;

func retreiveImagesFromFireBase(downloadUrl:String,imageHolder:UIImageView){
            if downloadUrl != ""{
                let storageRef = Storage.storage().reference(forURL: downloadUrl)
                // Download the data, assuming a max size of 1MB (you can change this as necessary)
                storageRef.getData(maxSize: 5*1024*1024) { (data, error) in
                    if error == nil{
                        if let pic = UIImage(data: data!){
                            imageHolder.image = pic
                            image = pic // use it on other views 
                        }
                    }else{
                        print(error)
                    }
                }
            }
        }
0
ответ дан Meeran Tariq 28 February 2019 в 13:06
поделиться
Другие вопросы по тегам:

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