ios - 如何从 NSDictionary 分配图像和标签值?

标签 ios swift

我正在将数据(图像和标签)从一个 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.imagefriendname.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/

相关文章:

ios - 在 iOS 中的文件夹 OneDrive 中创建文件夹

ios - 带有 xml 解析器的dispatch_async 不工作

swift - OVH 公共(public)云存储、Duplicity、Openstack、Swfit REGION NAME 问题

ios - 在 "let"常量变量中赋值,它在 cocoapods 中

ios - 带有阴影和 mask 层的 UIView

iphone - 如何在 IOS 上展开和折叠 uiview

ios - Firebase Auth 使用来自不同类别的文本输入创建新用户

ios - 如何在特定位置的 uiimage View 上设置小图像?

ios - 如何从不同层次的JSON对象中拉取数据

ios - NumberFormatter 将百分比值加倍得到 nil