我正在将数据(图像和标签)从一个 View Controller 传递到另一个 View Controller 。我将它们存储在 NSDictionary 中,并将数据传递给新的 View Controller 。我已经连接了 ImageView 和标签。如何为图像和标签分配 NSDictionary 中的值?下面是将数据从一个 View Controller 传输到另一个 View Controller 的代码。
var dicSelected : NSDictionary!
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
print("Cell \(indexPath.item) selected")
print(arrayOfFriendsNames[indexPath.item])
self.dicSelected = ["friendname" : arrayOfFriendsNames[indexPath.item], "friendimage" : arrayOfFriends[indexPath.item]]
self.performSegueWithIdentifier("friendaccess", sender: dicSelected)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "friendaccess"){
let nextViewOBJ = segue.destinationViewController as! FriendProfilePages
nextViewOBJ.dicData = self.dicSelected;
}
}
下面是 FriendProfilePages 的代码。
@IBOutlet weak var friendimage: UIImageView!
@IBOutlet weak var friendname: UILabel!
var dicData : NSDictionary?
override func viewWillAppear(animated: Bool) {
print("Dictionary: \(self.dicData)")
最佳答案
或者你可以创建一个带有属性的模型类
var image: UIImage?
var text: String?
然后将该类的对象传递给下一个 View Controller 并将这些值分配给您的friendimage.image
和friendname.text
FriendProfilePages 代码:
@IBOutlet weak var friendimage: UIImageView!
@IBOutlet weak var friendname: UILabel!
var dataModel : DataModel?
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
friendimage.image = dataModel.image
friendname.text = dataModel.text
}
现在用于执行 Segue
var selectedData = DataModel()
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
print("Cell \(indexPath.item) selected")
print(arrayOfFriendsNames[indexPath.item])
self.selectedData.text = arrayOfFriendsNames[index] as? String
self.selectedData.image = arrayOfFriends[index] as? UIImage
self.performSegueWithIdentifier("friendaccess", sender: dicSelected)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "friendaccess"){
let nextViewOBJ = segue.destinationViewController as! FriendProfilePages
nextViewOBJ.dataModel = self.selectedData;
}
}
在任何地方声明
class DataModel : NSObject {
var image: UIImage?
var text: String?
}
只是给你一个想法......
关于ios - 如何从 NSDictionary 分配图像和标签值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33425568/