ios - 如何在没有 segue 的情况下将 ImageView 从 View Controller 传递到选项卡栏 View Controller ?

标签 ios swift

我在 View Controller 中有一个用户注册表单,用户可以在其中设置个人资料图像,并且有一个带有“我的个人资料”选项卡的选项卡栏 Controller ,该图像在注册后应显示在其中。如何将图像从注册表单传输到选项卡 Controller “我的个人资料”?从 addPhotoImage( View Controller )到 userPhotoImage(选项卡 View Controller )。

import UIKit

class SigninViewController: UIViewController {
    var imagePicker = UIImagePickerController()

    @IBOutlet var countPlaceInCar: UITextField!
    @IBOutlet var nameOfCar: UITextField!

    @IBOutlet var AddPhotoButton: UIButton!
    @IBOutlet var registerButton: UIButton!

    @IBOutlet var registrationSegmented: UISegmentedControl!

    @IBOutlet var addPhotoImage: UIImageView!

    @IBOutlet var nameTextField: UITextField!
    @IBOutlet var phoneTextField: UITextField!
    @IBOutlet var passwordTextField: UITextField!
    @IBOutlet var emailTextField: UITextField!

    @IBOutlet var segmentedControl: UISegmentedControl!

    override func viewDidLoad() {
        super.viewDidLoad()

        imagePicker.delegate = self
        makeRounded()    
    }

    //func that rounded image for user
    func makeRounded() {
        addPhotoImage.layer.borderWidth = 1
        addPhotoImage.layer.borderColor = #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
        addPhotoImage.layer.cornerRadius = addPhotoImage.frame.height/2 //This will change with corners of image and height/2 will make this circle shape
        addPhotoImage.layer.masksToBounds = true

    }

    @IBAction func addPhotoFromLibraryOrCamera(_ sender: UIButton) {
        imagePicker.sourceType = .photoLibrary
        imagePicker.allowsEditing = true
        present(imagePicker, animated: true, completion: nil)

    }

}

extension SigninViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        if let image = info[UIImagePickerController.InfoKey.editedImage] as? UIImage {
            addPhotoImage.image = image


        }
        dismiss(animated: true, completion: nil)
    }
}

import UIKit

class FourthViewController: UIViewController {
    @IBOutlet var messageForUser: UIButton!
    @IBOutlet var routeImage: UIImageView!
    @IBOutlet var userPhotoImage: UIImageView!

    override func viewDidLoad() {
    }

最佳答案

首先。您要传输 UIImage,而不是 UIImageViewUIImage 是图像的数据表示。 UIImage 仅显示图像。

你可以像这样使用单例:

class UserManager {
    static let shared = UserManager()

    var image: UIImage?
}

然后你就可以像这样从任何地方访问它了

UserManager.shared.image

请注意,通过这种方法,图像将在应用程序在内存中时一直在内存中。因此,仅当您一直需要图片时才使用它。

关于ios - 如何在没有 segue 的情况下将 ImageView 从 View Controller 传递到选项卡栏 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56137776/

相关文章:

iphone - 强制 UIViewController 加载特定方向

ios - "unrecognized selector sent to instance"在 react-native 上设置属性时

iOS 10 Today Extension 不会进入扩展模式,仍保持紧凑模式

swift - Xcode 8.2 给出 NSManagedObject 子类的损坏代码

swift - 如何为 Swift 3 更新 UnsafePointer 的数据声明?

swift - iPhone SE 尺寸屏幕的 Xcode 自动布局问题

ios - 如何使用所有语言填充 iOS 选择器?

ios - 当我启动我的应用程序时,它会在 iPhone 应用程序屏幕上停留 4.5 秒

ios - 更改突出显示的 UIButton BG 颜色,但保留层角半径?

ios - 为什么 "tableview.cellForRowAtIndexPath(indexPath)"给我一个 BAD_ACCESS 错误?