将图像传递给另一个View Controller

时间:2018-06-09 12:35:00

标签: ios swift image

这可能看起来像是关于传递已经回复的数据的另一个问题,但不是(我在stackoverflow中搜索了很多次)

我解释说:

我使用Firebase来验证用户身份。 在我的问题中,我使用Google登录,而func位于 Appdelegate

func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {

我有一个基于scrollView(https://github.com/jakespracher/Snapchat-Swipe-View)的导航,所以viewdidload / didappear只在我的应用程序上启动一次(在开始时,而不是在我滑动到UIController时)。

所以我的问题:

我想将我的func标志(Google个人资料图片)中的图片从我的 Appdelegate 传递到 ProfileViewController 。 我希望在我的 Appdelegate 中使用我的功能(segue /现在没有工作。现在因为它在appdelegate和segue上,因为viewdidload /确实只出现了一次)

那我该怎么办?

我在 Appdelegate 上的功能上尝试了这个,但是在 controller.profile.image 上没有任何结果:

let image: UIImage = UIImage(data: data)!
var storyboard = UIStoryboard(name: "Main", bundle: nil)
var controller = storyboard.instantiateViewControllerWithIdentifier("Profile") as! ProfileViewController

controller.profile.image = image

请拜托,如果有人帮助我,我将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

你的方向错误,你试图将图像设置为尚未加载的ViewController的ImageView。

您可以在视图控制器中使用UIImage对象,在ViewDidLoad上可以将图像设置为ImageView。

class ProfileViewController : UIViewController {
var imageFromPreviousPage : UIImage?

@IBOutlet weak var profile: UIImageView!

override func viewDidLoad() {
    super.viewDidLoad()
    profile.image = imageFromPreviousPage
}
}

现在将图像设置为此图像对象

let image: UIImage = UIImage(data: data)!
var storyboard = UIStoryboard(name: "Main", bundle: nil)
var controller = storyboard.instantiateViewControllerWithIdentifier("Profile") as! ProfileViewController
controller. imageFromPreviousPage = image

现在您可以将导航控制器推到ViewController上方。

如果你是从Appdelegate didFinishLauch尝试它,你需要将它设置为窗口的根视图。

希望它会对你有所帮助。

相关问题