因此,在我的情节提要中,我有一个带有容器视图的UIViewController,其中嵌入了一个UITableViewController。就是这样的样子:https://i.imgur.com/0yBWtbG.png
但是现在我想设置由相机拍摄的照片,但是问题是:UIImageView在UITableViewController内部,而打开相机的按钮在UIViewController内部(您可以在上传的屏幕快照中看到相机图标)。
所以,我尝试了这个:
UIViewController的代码:
@IBAction func openCamera(_ sender: UIButton) {
let image = UIImagePickerController()
image.delegate = self
image.sourceType = UIImagePickerController.SourceType.camera
image.allowsEditing = false
self.present(image, animated: true)
{
}
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any])
{
let info = convertFromUIImagePickerControllerInfoKeyDictionary(info)
if let image = info[convertFromUIImagePickerControllerInfoKey(UIImagePickerController.InfoKey.originalImage)] as? UIImage
{
takenPhoto = image //takenPhoto is a global variable
let CIV = CreateIssue()
CIV.showImage()
}
else
{
}
self.dismiss(animated: true, completion: nil)
}
fileprivate func convertFromUIImagePickerControllerInfoKeyDictionary(_ input: [UIImagePickerController.InfoKey: Any]) -> [String: Any] {
return Dictionary(uniqueKeysWithValues: input.map {key, value in (key.rawValue, value)})
}
fileprivate func convertFromUIImagePickerControllerInfoKey(_ input: UIImagePickerController.InfoKey) -> String {
return input.rawValue
}
}
UITableViewController的代码:
public func showPicture() {
ivPicture.isHidden = false //here I get Unexpectedly found nil after taking a picture from the camera
ivPicture.image = takenPhoto
}
但是,如果我尝试在ViewDidLoad中调用该函数,则效果很好:
override func viewDidLoad() {
showPicture()
}
最近几天,我发布了一个类似的问题,但是我试图通过segues从另一个swift文件中更改变量,并被告知我使用prepare for segue方法,但是在这种情况下,我只是在调用一个函数另一个swift文件和对象属于同一swift文件。我是否也需要使用“准备缝制”方法?还是我做错了什么?
提前谢谢
答案 0 :(得分:0)
您创建子vc的实例
let CIV = CreateIssue()
CIV.showImage()
该脚本未从情节提要中加载,因此所有出口均为nil,因此请替换此
let CIV = CreateIssue()
使用
let CIV = self.children[0] as! CreateIssue
答案 1 :(得分:0)
要记住的一件事-UIView,Tabbleview及其单元都是不同的类/对象。即使它们出现在同一用户界面上,它们之间也没有任何自然的关系。表格视图单元格中的按钮是该单元格类的成员,而不是表或包含该表的视图。
一个问题-您是否需要在Tableview单元格中具有此按钮,或者它可以仅作为UIView的一部分存在?从您的示例尚不清楚,是否需要重复这些单元格/是否需要多个单元格实例(通常是UITableViewCell用例),或者是否只需要单个单元格。