class MyViewController: UIViewController { @IBOutlet weak var targetLabel: UILabel! @IBOutlet weak var salesImage: UIImageView! @IBOutlet weak var salesTitle: UILabel! @IBOutlet weak var salesCTA: UIButton! @IBOutlet weak var salesSubtitle: UILabel! private var ctaLink:String! private let TARGETDEFAULTCONTENT = "default" private let MBOXNAME = "dma-mobile-mbox" override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) setDefaultContent() var dictionary: [String : String] = Dictionary() dictionary["anmboxparameter"] = "something" dictionary["anothermboxparameter"] = "somethingelse" let additionalMboxParameters = NSMutableDictionary(dictionary:dictionary) let request = ADBMobile.targetCreateRequestWithName( "dma-mobile-mbox", defaultContent: "default-content", parameters: additionalMboxParameters as [NSObject : AnyObject]) ADBMobile.targetLoadRequest(request, callback: setContentFromAdobeTargetResponse) } private func setContentFromAdobeTargetResponse(entry:String?) -> Void{ let data = entry! if(data==self.TARGETDEFAULTCONTENT){ // No target response } else{ dispatch_async(dispatch_get_main_queue(), { if(entry=="default-content"){ self.setDefaultContent() } else{ let dataFromEntry = entry!.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) let data = JSON(data:dataFromEntry!) let image = data["image"].stringValue let title = data["title"].stringValue let subtitle = data["subtitle"].stringValue let ctatext = data["ctatext"].stringValue let ctalink = data["ctalink"].stringValue self.setContent(image,title:title,subTitle:subtitle, ctaLink:ctalink, ctaText: ctatext) } }) } } private func setDefaultContent(){ let image = "https://domain.com/default_image.png"; let title = "Title" let subTitle = "SubTitle" let ctaLink = "https://www.google.com" let ctaText = "Google is your friend" setContent(image,title:title,subTitle: subTitle,ctaLink: ctaLink,ctaText: ctaText) } private func setContent(imageUrl:String,title:String,subTitle:String,ctaLink:String,ctaText:String){ contentTitle.text = title contentSubtitle.text = subTitle self.contentCTA.setTitle(ctaText,forState:.Normal) self.ctaLink = ctaLink if let url = NSURL(string: imageUrl){ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { if let data = NSData(contentsOfURL: url) { dispatch_async(dispatch_get_main_queue(), {self.contentImage.image = UIImage(data: data)}) } } } } @IBAction func ctaButtonClicked(sender: UIButton) { print("cta button clicked") } }