2016-11-11 57 views
0

我想获取特定的图像和文本文件嵌入到我的第二个视图控制器根据哪个引脚被选中在我的地图视图。目前,我的标题正在通过赛格转移。我的想法是将文本文件和图像命名为与标题相同,以便在找到标题时正确选择它们。导入文本和图像快速地图工具包

EG:Title = big ben:title =“big ben”因此选择图片title.png和title.txt 但是我遇到了麻烦,因为我不确定如何告诉swift选择图像和文本文件从资产文件夹。

我目前拥有的SEGUE和赛格瑞为实施做准备:

func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) { 
    if control == view.rightCalloutAccessoryView { 
     if let artworkPin = view.annotation as? Artwork { 
      performSegue(withIdentifier: "no", sender: artworkPin) 
     } 
    } 
} 

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if let identifier = segue.identifier { 
     if identifier == "no" { 
      if let artworkPin = sender as? Artwork { 
       let ViewTwo = segue.destination as! ViewTwo 
       ViewTwo.artworkPin = artworkPin 
      } 
     } 
    } 
} 

} 

和我的第二个观点类为:

@IBOutlet weak var art_image: UIImageView! 

@IBOutlet weak var art_desc: UITextView! 

@IBOutlet weak var art_title: UILabel! 
var artworkPin: Artwork! 



override func viewDidLoad() { 
    super.viewDidLoad() 
    art_title.text = artworkPin.title 




} 

我怎样才能迅速从资产文件夹拉? 我重视我的下面全码: ViewControllerOne

ViewTwo

回答

1

存储XCAssets非图像文件时,你应该使用NSDataAsset来acccess其内容

参考:https://developer.apple.com/library/ios/documentation/UIKit/Reference/NSDataAsset_Class/

func readBundle(file:String) -> String 
{ 
    var res = "" 
    if let asset = NSDataAsset(name: file) , let string = String(data:asset.data, encoding: String.Encoding.utf8){ 
     res = string 
    } 
    return res 
} 

在第二个视图控制器中加载图像

@IBOutlet weak var art_image: UIImageView! 

@IBOutlet weak var art_desc: UITextView! 

@IBOutlet weak var art_title: UILabel! 
var artworkPin: Artwork! 



override func viewDidLoad() { 
    super.viewDidLoad() 
    art_title.text = readBundle(artworkPin.title) 
art_image.image = UIImage(named:"PinSample") 

} 

注意:资产图像和名称的代码应该是相同的

+0

我有readBundle一个悬而未决的标识符错误是一个模块,我需要进口的一部分?我也必须把它作为named来呈现:“String”我可以做名为:title,因此无论标题是什么(即作为art_title.text的导入文本),它都会打开一个名为该标题的文件。否则,如果我已经说过“Pin 1”,无论标题和引脚被点击,引脚1的图像将被加载。如果这没有意义,你让我知道,我会尝试再解释。 –

+0

凹凸............ –

+0

如果两者都相同,您可以使用标题作为图像名称 – Vinodh