作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在目标 View Controller 的配置文件按钮上显示图像,但是当我尝试从源 View Controller 分配图像时,它崩溃了,因为我的“proficPicButton”为零。
let cell = tableView.cellForRow(at: indexPath) as! FacebookTableViewCell
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let objFriendsDetailViewController = storyBoard.instantiateViewController(withIdentifier: "FriendsDetailViewController") as! FriendsDetailViewController
objFriendsDetailViewController.friendsName = cell.friendsName.text! //Can Assign Data to the property "friendsName"
objFriendsDetailViewController.remindersDataDict = ["birthDay":cell.friendsBirthDay.text!] //Can Assign Data to the property "remindersDataDict"
let image = cell.profilePicButton.image(for: .normal)
print(objFriendsDetailViewController)
print(objFriendsDetailViewController.remindersTableView) //It says nil
print(objFriendsDetailViewController.profilePicButton) //It says nil
objFriendsDetailViewController.profilePicButton.setImage(image, for: .normal) //Can't Assign Image to the property "profilePicButton"
self.navigationController?.pushViewController(objFriendsDetailViewController, animated: true)
如何将源 View Controller 中的图像设置到目标 View Controller 中的按钮?
最佳答案
在触发推送
时,目标 View Controller 的 UI 组件未设置。 UI 组件在 set 模式下的实际位置是 View Controller 的 viewDidLoad()
。因此,您尝试在 UI 实际上从未设置状态转换到设置状态之前设置图像。并且您的 Button
是隐式展开的 optional ,它告诉您,如果在初始化之前访问或在值为 nil 时访问则崩溃。
现在,这不是实现您正在尝试的目标的方法。实际的做法是:
viewDidLoad()
)时,您可以使用该属性更新相应的 View 关于ios - 如何在推送到目标 View Controller 之前设置图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48862450/
我是一名优秀的程序员,十分优秀!